SharePoint跟权限有关的Object Model Class

SPRoleDefinition:

定义了一个单个的角色, 包括一个名字, 描述, 属性, 和一系列的权限.

 

SPRoleAssignment:

为一个用户或用户组定义了该用户或组所有的角色分配.

 

SPRoleDefinitionBindingCollection:

定义了绑定在一个role assignment对象上的一个或多个角色的定义.

 

SPPrincipal:

代表着一个可以被赋予权限的用户或组.

 

这四个对象之间的关系可以用下面的代码来说明

using (SPSite oSite = new SPSite("http://localhost/"))
{
    using (SPWeb oWeb = oSite.OpenWeb())
    {
        SPRoleDefinitionCollection oWebRoleDefinitions = oWeb.RoleDefinitions;
        SPRoleAssignmentCollection oWebRoleAssignments = oWeb.RoleAssignments;

        if (!oWeb.HasUniqueRoleAssignments)
        {
            Console.WriteLine("This web has inherited permission from its parent.");
        }
        else
        {
            foreach (SPRoleAssignment oRA in oWebRoleAssignments)
            {
                SPPrincipal oPrincipal = oRoleass.Member;
                Console.WriteLine(oPrincipal.Name);

                foreach (SPRoleDefinition oRD in oRA.RoleDefinitionBindings)
                {
                    Console.WriteLine("    " + oRD.Name);
                    Console.WriteLine("    " + oRD.Order);
                    Console.WriteLine("    " + oRD.Hidden);
                    Console.WriteLine("    " + oRD.Type);
                }
            }
        }                    

        SPRoleAssignment oNewRoleAssignment = new SPRoleAssignment(("yunzhang\\test1",
                                                                "test1@yunzhang.com",
                                                                "test1 display", "Notes test1");

        SPRoleDefinitionBindingCollection oNewRoleDefinitionBindings = 
                                                oNewRoleAssignment.RoleDefinitionBindings;

        oNewRoleDefinitionBindings.Add(oWebRoleDefinitions["Role_Definition_Name"]);

        oWebRoleAssignments.Add(oNewRoleAssignment);
    }
}

 

SPUser:

代表着一个用户.

 

SPUserInfo:

这是一个结构,而不是一个类. 定义了一个当前并未被注册到内容数据库中的用户信息.

 

SPGroup:

代表这一个用户组.

 

过期对象

=========

SPRole:

代表一个站点用户组, 它存在于WSS 2.0中, 现在这个类还存在是为了向后兼容(现在的版本可以支持以前的版本数据). 现在应该使用SPRoleDefinitionSPRoleAssignment这两个类了.

 

SPPermission:

代表着可以赋予用户或组的权限. 与SPRole一样, 它的存在是为了向后兼容.

 

SPRights:

该API已经过期, 不再使用.

 

参考资料

http://msdn.microsoft.com/en-us/library/ms469194.aspx

posted on   中道学友  阅读(306)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2010-02-22 深入解析SharePoint Content Deployment and Migration API 之三
2010-02-22 深入解析SharePoint Content Deployment and Migration API 之二
2010-02-22 深入解析SharePoint Content Deployment and Migration API 之一
2010-02-22 SharePoint的IIS Application Pool的域账户修改过名字, 报错
2010-02-22 不要用stsad.exe来备份还原大小超过15G的站点集
2010-02-22 SQL服务无法启动, 说是logon fail
2010-02-22 导致SharePoint发生Timeout的几处门槛设置

导航

< 2011年2月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 1 2 3 4 5
6 7 8 9 10 11 12

技术追求准确,态度积极向上

点击右上角即可分享
微信分享提示