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已经过期, 不再使用.
参考资料
http://msdn.microsoft.com/en-us/library/ms469194.aspx