没有罗列许可我们知道,我们可以这样做检查用户的权限,如何获取SharePoint对象的权限?提前致谢。检查当前用户的权限,如果用户在SharePoint
0
A
回答
2
你可以通过打开一个“admin”web实例(创建一个SPSite
对象并将系统帐户的用户令牌传递给它)来完成。这样你就不用担心当前用户是否有足够的权限。
SPUserToken adminToken = SPContext.Current.Web.AllUsers["SHAREPOINT\\System"].UserToken;
using (SPSite adminSite= new SPSite(SPContext.Current.Site.ID, adminToken)) {
using (SPWeb adminWeb = adminSite.OpenWeb(SPContext.Current.Web.ID)){
if (adminWeb.DoesUserHavePermissions(SPContext.Current.Web.CurrentUser.LoginName, SPBasePermissions.Open)) {
//do something
}
}
}
当然,您最好不要在每次页面加载时都这样做,因为创建和处理SPSite/SPWeb对象的代价相对较高。
+0
感谢您的回答。有用。 –
0
这里我定义了一个函数,它需要一个SharePoint列表对象,一个角色类型和一个用户。
- portal:Sharepoint列表或文档库对象。
- 角色:由Sharepoint提供的角色类型,如Read,Design等。
- 用户:您想要在门户上授予角色的用户。
希望它能帮助你。
public static void AssignPermissionToPortal(string portal, SPRoleType role, SPUser user)
{
try
{
// Run with elevated privileges
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(SPContext.Current.Web.Site.ID))
{
using (SPWeb web = site.OpenWeb(SPContext.Current.Web.ID))
{
web.AllowUnsafeUpdates = true;
SPList portalList = SPListHelper.GetSPList(portal, web);
portalList.BreakRoleInheritance(false);
//Add Readers on portal
SPRoleDefinition permission = web.RoleDefinitions["Read"];
if (role == SPRoleType.Administrator)
permission = web.RoleDefinitions["Full control"];
else if (role == SPRoleType.Contributor)
permission = web.RoleDefinitions["Contribute"];
else if (role == SPRoleType.WebDesigner)
permission = web.RoleDefinitions["Design"];
else
permission = web.RoleDefinitions["Read"];
// Check the user Role on site level.
SPUser roleUser = uHelper.GetUserById(user.ID);
if (roleUser != null)
{
SPRoleAssignment assignment = new SPRoleAssignment(roleUser);
assignment.RoleDefinitionBindings.Add(permission);
portalList.RoleAssignments.Add(assignment);
portalList.Update();
}
web.AllowUnsafeUpdates = false;
}
}
});
}
catch (Exception ex)
{
Log.WriteException(ex);
}
}
相关问题
- 1. 如何在Django中检查当前用户的权限?
- 2. 检查用户权限的权限
- 3. 如何检查当前用户是否具有管理权限
- 4. PHP用户权限检查
- 5. 的SharePoint REST API根据当前用户的权限
- 6. 获取当前用户的权限
- 7. Facebook:我如何检测用户的当前权限?
- 8. 检查用户权限在Mac
- 9. 在RESTful API中检查用户权限
- 10. 在Rails中检查Facebook用户权限
- 11. SharePoint 2007的当前用户
- 12. 检查当前用户ID
- 13. 如何获得当前用户的查看对象权限
- 14. 如何使用C#在Sharepoint 2010中检查用户或组的权限?
- 15. 检查Oracle用户的特定权限
- 16. 检查用户对SSRS的权限
- 17. PHP的MySQLi - 检查用户权限
- 18. Pymongo检查连接的用户权限
- 19. 在尝试创建数据库之前检查用户权限
- 20. 如何检查当前用户是否具有对Sharepoint 2007和2010中的Web部件的编辑权限?
- 21. 分站点上的Sharepoint用户权限
- 22. 检查用户是否有权限
- 23. Laravel:检查用户是否有权限
- 24. 检查用户显示权限
- 25. 打开图检查用户权限
- 26. UWP:获取当前用户名向用户提供权限
- 27. 在Java中检查指定用户帐户的文件权限
- 28. SharePoint获取当前用户帐户名?
- 29. 如何获得用户当前在Django管理站点的用户权限
- 30. C#使用SharePoint客户端对象模型检查SharePoint列表权限
[你的意思是像 “系统” 的权限?](http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.systemaccount.aspx) – bzlm
@bzlm我的意思是SharePoint权限如“阅读”,“仅查看”,“完全控制”等。 –
如果您愿意,我们可以将其移至我们的SharePoint网站,您可能会得到更好的答案。如果你想这样做,请给我或者@发信息给我。 – Kev