在我们的应用程序中,如果当前用户具有特定的权限级别,我们有一些表格需要特别显示一些数据。这些用户属于SPGroup,其中包括不应该看到此数据的用户,因此在这种特殊情况下,我无法根据组成员资格进行过滤。
我目前的解决方案是使用web.CurrentUser.Roles
并使用简单检查它是否包含正确名称的权限级别。角色是被弃用的SPRole
类,所以尽管它在技术上有效,但我还是被警告消息轰炸了。它建议我使用SPRoleAssignment
或SPRoleDefinition
(推荐似乎是任意的,因为有些行推荐一个,而其他人推荐另一个,即使它被用于相同的事情)。
但是,我似乎找不到任何方法直接从SPRoleAssignment
或SPRoleDefinition
对象检索SPUser
或SPPrincipal
对象,也无法检索任何对应的对象特别是SPWeb
对象的当前用户。
如何更新这些方法以使用未弃用的代码?我发现了其他确定用户权限的情况,但我还没有找到一个可以从当前网站或当前用户的起点开始工作的情况。这并不紧急,但是为了避免为了达到更重要的警告而必须筛选所有这些警告肯定是有帮助的。
答案 0 :(得分:3)
在实际物体上,例如和SPList,您可以调用DoesUserHavePermission
方法,例如
someList.DoesUserHavePermissions(SPBasePermissions.ViewUsageData);