获取用户权限
求教用item.GetUserEffectivePermissions(username)得出的结果是很细的权限信息(例如:查看网页,删除项目,查看项目,批准项目一大串)
怎样才能得出类似 完全控制 参与讨论 设计 这种权限组的权限信息?
[解决办法]
用SPRoleDefinition: http://sharepoint.stackexchange.com/questions/54691/how-to-find-permission-level-for-specific-user-using-visual-studio
[解决办法]
就组和当前权限 。。
1.判断当前用户是否具有完全控制权限
SPWeb web=SPContext.Current.Web;
SPRoleDefinitionBindingCollection usersRoles = web.AllRolesForCurrentUser;
SPRoleDefinitionCollection siteRoleCollection = web.RoleDefinitions;
SPRoleDefinition roleDefinition = siteRoleCollection["完全控制"];
if (usersRoles.Contains(roleDefinition))
{
//具有完全控制权限
}
SPWeb web=SPContext.Current.Web;
SPRoleDefinitionBindingCollection usersRoles = web.AllRolesForCurrentUser;
SPRoleDefinitionCollection siteRoleCollection = web.RoleDefinitions;
SPRoleDefinition roleDefinition = siteRoleCollection["完全控制"];
if (usersRoles.Contains(roleDefinition))
{
//具有完全控制权限
}
注意,如果你的sharepoint 版本是英语版本,请将完全控制四个字换成:Full Control
2.判断当前用户所在的组
SPWeb web=SPContext.Current.Web;
SPGroup group = web.Groups["Team Site所有者"];
if (group.ContainsCurrentUser)
{
//当前用户在"Team Site所有者"组内
}
SPWeb web=SPContext.Current.Web;
SPGroup group = web.Groups["Team Site所有者"];
if (group.ContainsCurrentUser)
{
//当前用户在"Team Site所有者"组内
}
注意:如果你的是英文版本,请将Team Site所有者 换成:Team Site Owners