当前位置: 代码迷 >> SharePoint >> 获取用户权限,该怎么处理
  详细解决方案

获取用户权限,该怎么处理

热度:101   发布时间:2016-05-02 07:14:55.0
获取用户权限
求教用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
  相关解决方案