zoukankan      html  css  js  c++  java
  • 控制视图页面的访问权限

    问题:

    控制视图页面的访问权限,设置只有指定组的用户可以访问。

    解决方案:

    写一个webpart,添加到需要控制权限的页面,如何当前用户不属于指定的组,则不允许用户访问当前页面。

    代码:
    //----------------------------------------------------------------
    //CodeArt
    //
    //文件描述:
    //
    //创 建 人: jianyi
    //创建日期: 2008-7-11
    //
    //修订记录: 
    //

    //----------------------------------------------------------------
    using System;
    using System.Collections.Generic;
    using System.Collections;
    using System.ComponentModel;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    using Microsoft.SharePoint;
    using System.Collections.Specialized;
    using Microsoft.SharePoint.Utilities; 

    namespace ShareOffice.WebParts
    {

        
    public class RightControlPart : WebPart
        
    {
            
    private string _Groups = "";
            [WebBrowsable]
            [WebDescription(
    "有权访问的组,用;间隔")]
            [Personalizable(PersonalizationScope.Shared)]
            
    public string Groups
            
    {
                
    get return _Groups; }
                
    set { _Groups = value; }
            }


            
    protected override void OnLoad(EventArgs e)
            
    {
                
    base.OnLoad(e);

                
    this.Title = "";

                
    base.ChromeType = PartChromeType.None;

                SPUser user 
    = SPContext.Current.Web.CurrentUser;

                
    //管理员可以访问
                if (user.IsSiteAdmin && String.IsNullOrEmpty(this.Groups))
                    
    return;

                
    //检测用户是否属于配置的组
                string[] arr = this._Groups.Split(';');

                StringCollection userGroups 
    = new StringCollection();
                
    foreach (SPGroup g in user.Groups)
                
    {
                    userGroups.Add(g.Name.ToLower());
                }


                
    foreachstring g in arr )
                
    {
                    
    if (userGroups.Contains(g.ToLower()))
                        
    return;
                }


                SPUtility.TransferToErrorPage(
    "您没有权限访问此视图.");
            }

        }

    }


    这种方法的一个适用场景:
    一个列表做两个视图:
    视图1(默认视图): 采用某个用户字段=[本人做过滤],普通用户可以查看到跟自己有关的数据。
    视图2:显示所有记录。在视图2页面上放置这个权限控制webpart,设置只有某个组可以访问。




  • 相关阅读:
    通过jQuery修改ui的顺序
    iOS用模型取代字典的好处
    iOS开发NSBundle、UIImageView和UIButton总结
    php数组中关于某个元素进行排序
    VMware 11安装Mac OS X 10.10
    js中的in_array
    localStorage中js数组的存储和读取
    google地图通过js计算当前位置与其余多个点之间的最近距离
    通过js修改图片的css样式,实现简单的图片旋转
    Javac不是内部或外部指令
  • 原文地址:https://www.cnblogs.com/jianyi0115/p/1241210.html
Copyright © 2011-2022 走看看