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,设置只有某个组可以访问。




  • 相关阅读:
    只因写了一段爬虫,公司200多人被抓!
    中国顶级程序员图鉴
    漫画 | 外行对程序员误会有多深!
    关于深夜技术事故纪实录的若干问题回复
    富士康14跳被我赶上了,流水线车间真的没有梦想 | 十年系列
    祖国和我们小山村的希望
    互联网从此没有 BAT
    程序员,职场上请远离这种人!
    HTML5漂亮实用的电子书
    这个jQuery导航菜单怎么样
  • 原文地址:https://www.cnblogs.com/jianyi0115/p/1241210.html
Copyright © 2011-2022 走看看