zoukankan      html  css  js  c++  java
  • 管理站点中的角色和用户and管理文档库的权限

    一、操作站点角色

     

    核心类:

    SPUser:表示一个站点用户(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPUser.asp?frame=true

    SPUserCollection:表示包含多个用户的集合(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPUserCollection.asp?frame=true

    SPRole:表示一个角色对象(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPRole.asp?frame=true

    SPRoleCollection:表示包含多个角色的集合(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPRoleCollection.asp?frame=true

     

    SPWeb(表示一个站点)包含一个Roles属性(SPRoleCollection类型),表示站点中所有的角色。SPRole包含一个Users属性(SPUserCollection类型),表示角色中所包含的所有用户。SPUser包含一个Roles属性(SPRoleCollection属性),表示用户所从属于的所有角色。

     

    SPRoleAdd()方法用于将某用户加入到自身这个角色中。RemoveUser()方法用于将某用户排除出自身这个角色。更改一个角色的信息后,调用Update()方法更新回数据源。

     

    下面代码示例遍历当前站点下所有的角色,然后遍历每个角色中的所有用户。由于每个用户可从属于多个角色,所以输出的用户信息会有重复。

     

    foreach(SPRole role in SPControl.GetContextWeb(HttpContext.Current).Roles)

    {

          Response.Write(“角色” + role.Name + “包含成员:”);

          foreach(SPUser user in role.Users)

    {

    Response.Write(user.Name + “;”);
    }

          Response.Write(“<br>”);

    }

     

     

    二、操作文档库权限

     

    核心类:

    SPList:表示一个列表,文档库也是一个列表。(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPList.asp?frame=true

    SPPermission:表示一项授权(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPPermission.asp?frame=true

    SPPermissionCollection:表示包含多项授权的一个集合(http://msdn.microsoft.com/library/en-us/spptsdk/html/tscSPPermissionCollection.asp?frame=true

    SPRights:用来表示权限的枚举(http://msdn.microsoft.com/library/en-us/spptsdk/html/tsenSPRights.asp?frame=true

     

    SPList有一个Permissions属性(SPPermissionCollection类型),表示这个列表上所有的授权。每个SPPermission对应为一个被授权成员(可以是一个角色或一个用户)与某些权限。SPPermissionMember属性(SPMember类型,是SPUserSPRole的父类)对应此项授权的被授权成员,PermissionMask属性(SPRights类型)对应此项授权的权限。

     

    SPPermissionCollectionAdd()方法用来增加一项授权,Remove()方法用来删除一项授权。

     

    下面的代码示例遍历站点中的所有文档库,并查看用户“kaneboy”在每个文档库上有哪些权限,如果用户在某文档库上没有任何权限,则增加一项能查看文档库中文档的权限。

     

    SPWeb web = SPControl.GetContextWeb(HttpContext.Current);

    SPUser user = web.Users[“kaneboy”];

    SPListCollection lists = web.GetListsOfType(SPBaseType.DocumentLibrary);

    foreach(SPList list in lists)

    {

          Boolean bIncludeMember = false;

          foreach(SPPermission perm in list.Permissions)

    {

          if (perm.Member.ID == user.ID)

    {

          bIncludeMember = true;

    Response.Write(“在文档库” + list.Title + “上,用户” + user.Name + “的权限是:” + perm.PermissionMask.ToString() + “<br>”);
    }

    }

    if (! bIncludeMember)

    {

          list.Permissions.Add(user, SPRights. ViewListItems);

    }

    }

  • 相关阅读:
    第2讲——处理数据
    第1讲——用C++写一个程序
    数论18——反演定理(莫比乌斯反演)
    数论17——反演定理(二项式反演)
    数论16——母函数
    数论15——抽屉原理
    数论14——容斥原理
    数论13——康托展开
    com.opensymphony.xwork2.config.ConfigurationManager.addConfigurationProvider
    Tomcat的杂七杂八
  • 原文地址:https://www.cnblogs.com/ericgisser/p/moss_RoleAndPermission.html
Copyright © 2011-2022 走看看