• 控制视图页面的访问权限


    问题:

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

    解决方案:

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




  • 相关阅读:
    进程对象的属性或方法详解
    进程理论以及开启子进程的两种方式
    计算机发展史(多道技术)
    基于socketserver实现的并发(tcp和udp)
    基于udp协议的套接字及udp协议粘包问题
    模拟ssh的远程网络传输
    周考题目及答案
    c/s架构搭建
    网络编程基础
    10.16模拟赛(湖南集训)
  • 原文地址:https://www.cnblogs.com/jianyi0115/p/1241210.html
Copyright © 2020-2023  润新知