zoukankan      html  css  js  c++  java
  • 检查所有用户对所有documentlibrary的权限

    using System;
    using System.ComponentModel;
    using System.Web.UI.WebControls.WebParts;
    
    
    using Microsoft.SharePoint;
    
    
    namespace ZY.VisualWebPart1
    {
        [ToolboxItemAttribute(false)]
        public partial class VisualWebPart1 : WebPart
        {
            System.Web.HttpResponse Response = null;
    
            // Uncomment the following SecurityPermission attribute only when doing Performance Profiling on a farm solution
            // using the Instrumentation method, and then remove the SecurityPermission attribute when the code is ready
            // for production. Because the SecurityPermission attribute bypasses the security check for callers of
            // your constructor, it's not recommended for production purposes.
            // [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Assert, UnmanagedCode = true)]
            public VisualWebPart1()
            {
                Response = System.Web.HttpContext.Current.Response;   
            }
    
            protected override void OnInit(EventArgs e)
            {            
                base.OnInit(e);
                InitializeControl();
            }
    
            protected void Page_Load(object sender, EventArgs e)
            {
                System.Text.StringBuilder sb = new System.Text.StringBuilder();
                if (!SPContext.Current.Site.RootWeb.CurrentUser.IsSiteAdmin)
                {
                    //Response.Write("Permission deny!");
                    sb.AppendLine("Permission deny!");
                    Label1.Text = sb.ToString();
                    return;
                }
    
                
                SPSecurity.CatchAccessDeniedException = false;
    
                SPWeb Web = SPContext.Current.Site.RootWeb;
    
                SPUser currentUser = Web.CurrentUser;
                sb.AppendLine("<b>CurrentUser:" + currentUser.Name + "</b><br />===================begin====================<br />");
    
                Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    System.Collections.Generic.List<SPDocumentLibrary> documentList = new System.Collections.Generic.List<SPDocumentLibrary>(); 
                    using (SPSite site1 = new SPSite("https://www.abc.net.cn:8899/"))
                    {
    
                        SPListCollection collLists = site1.RootWeb.Lists;
    
                        foreach (SPList oList in collLists)
                        {
                            if (oList.BaseType == SPBaseType.DocumentLibrary)
                            {
                                SPDocumentLibrary oDocumentLibrary = (SPDocumentLibrary)oList;
    
                                //var permissions=oDocumentLibrary.Permissions.GetEnumerator();
                                var roles = oDocumentLibrary.AllRolesForCurrentUser;
                                SPUser user = Web.CurrentUser;
                                //SPMember member = Web.AllUsers[userPrefix + "sk\\zy"];
                                if (!oDocumentLibrary.IsCatalog && oList.BaseTemplate != SPListTemplateType.XMLForm)
                                {
                                    documentList.Add(oDocumentLibrary);
                                    /*
                                    SPListItemCollection collListItems = oDocumentLibrary.Items;
                                    Response.Write("<b> Document Library Name:" +oDocumentLibrary.Title + "</b><br>");
                                    SPRoleDefinitionBindingCollection roles0 = oDocumentLibrary.AllRolesForCurrentUser;
                                    Response.Write("DocumentLibrary.AllRolesForCurrentUser.Count:" + roles0.Count + "<br>");
                                    foreach (SPRoleDefinition role in roles0)
                                    {
                                        Response.Write("++++" + role.Name + "<br>");
                                    }
                                    Response.Write("-------------------<br />");
                                    Response.Write("SPRoleAssignment.Member.Name:<br />");
    
                                    try
                                    {
                                        SPRoleAssignmentCollection roleAssigments = oDocumentLibrary.RoleAssignments;
                                        foreach (SPRoleAssignment item in roleAssigments)
                                        {
                                            Response.Write(item.Member.Name + "<br>");
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        Response.Write(ex.GetType().ToString());
                                    }
                                    Response.Write(currentUser.Name + "<br />==============<br/>");
                                    */
    
                                }
                            }
                        }
                    }
    
    
    
                    sb.AppendLine("Permission list for all users:");
                    SPUserCollection users = Web.AllUsers;
                    foreach (SPUser u in users)
                    {
                        sb.AppendLine("<br />" + u.Name + "<br />");
                        foreach (SPGroup item in u.Groups)
                        {
                            sb.AppendLine("++" + item.Name);
                            sb.AppendLine("<br />");
                        }
                        //u.UserToken
                        //documentList[0].Items[0].Title;
                        using (SPSite site = new SPSite("https://www.abc.net.cn:8899/", u.UserToken))
                        {                        
                            foreach(SPDocumentLibrary docLib in documentList)
                            {
                                sb.AppendLine(docLib.Title);
                                try
                                {
                                    //var o = site.RootWeb.Lists[docLib.ID].GetView(site.RootWeb.Lists[docLib.ID].DefaultView.ID);
                                    if (site.RootWeb.Lists[docLib.ID].DoesUserHavePermissions(SPBasePermissions.ViewFormPages
                                                                        | SPBasePermissions.ViewListItems
                                                                        | SPBasePermissions.Open
                                                                        | SPBasePermissions.ViewPages))
                                    {
                                        //Response.Write("<font color='green'>" +site.RootWeb.Lists[docLib.ID].Items.Count.ToString() + "</font>");
                                        sb.AppendLine(" <font color='green'>Read</font>");
                                    }
                                    else
                                    {
                                        sb.AppendLine("<font color='blue'>Deny</font>");
                                    }
                                    if (site.RootWeb.Lists[docLib.ID].DoesUserHavePermissions(SPBasePermissions.ViewPages |
                                                                 SPBasePermissions.Open |
                                                                 SPBasePermissions.AddListItems |
                                                                 SPBasePermissions.EditListItems |
                                                                 SPBasePermissions.ViewListItems |
                                                                 SPBasePermissions.OpenItems |
                                                                 SPBasePermissions.ViewVersions |
                                                                 SPBasePermissions.CreateAlerts |
                                                                 SPBasePermissions.ViewFormPages |
                                                                 SPBasePermissions.UseClientIntegration |
                                                                 SPBasePermissions.ManagePersonalViews |
                                                                 SPBasePermissions.ManagePersonalViews |
                                                                 SPBasePermissions.UpdatePersonalWebParts |
                                                                     SPBasePermissions.ViewPages))
                                    {
                                        //Response.Write("<font color='green'>" +site.RootWeb.Lists[docLib.ID].Items.Count.ToString() + "</font>");
                                        sb.AppendLine(" <font color='green'>Contribute</font>");
                                    }
                                    else
                                    {
                                        sb.AppendLine("<font color='blue'>Contribute Deny</font>");
                                    }
                                }
                                catch (Exception ex)
                                {
                                    //Response.Write("<font color='red'>" + ex.Message + "</font>");
                                    sb.AppendLine("<font color='red'>Deny</font>");
                                }
                                sb.AppendLine("<br />");
                            }
                        }
                    }
    
                    sb.AppendLine("===================end====================<br />");
    
                    //The groups that the user has management privilege
                    /*
                    Response.Write("<br />");
                    Response.Write("<b>SPUser.OwnedGroups</b>");
                    Response.Write("<br />");
                    SPGroupCollection groups_u = currentUser.OwnedGroups;
                    foreach (SPGroup item in groups_u)
                    {
                        Response.Write(item.Name);
                        Response.Write("<br />");
                    }
    
                    Response.Write("=======================================<br />");
                    */
    
                    /*
                    Response.Write("<br />");
                    Response.Write("<b>SPGroupCollection.Groups</b>");
                    Response.Write("<br />");
                    SPGroupCollection u_Groups = currentUser.Groups;
                    foreach (SPGroup item in u_Groups)
                    {
                        Response.Write(item.Name);
                        Response.Write("<br />");
                    }
                    Response.Write("=======================================<br />");
                    */
    
                });
                Label1.Text = sb.ToString();
                //Response.End();
            }//end of pageload
        }
    }
  • 相关阅读:
    APP之百度地图SDK的AK值获取(android)
    横向滚动菜单-选中标题居中显示
    函数按引用传参问题
    js验证提交
    Java servlet ajax
    数据库3种读
    mybatis插件
    mybatis 缓存
    从前端对象中获取的文本变为字符串,并替换其中一些指定的字符
    多个窗口开启后,切换到指定title的窗口
  • 原文地址:https://www.cnblogs.com/zyip/p/3012271.html
Copyright © 2011-2022 走看看