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 2011-02-22 09:49  中道学友  阅读(305)  评论(0编辑  收藏  举报

导航

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