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中, 现在这个类还存在是为了向后兼容(现在的版本可以支持以前的版本数据). 现在应该使用SPRoleDefinition和SPRoleAssignment这两个类了.
SPPermission:
代表着可以赋予用户或组的权限. 与SPRole一样, 它的存在是为了向后兼容.
SPRights:
该API已经过期, 不再使用.
参考资料