我需要确定指定用户可以通过SharePoint API在SharePoint Web应用程序中访问的站点和Web . 请注意,指定的用户与调用代码的当前用户不同 . 我最初考虑使用PortalSiteMapProvider,但它没有提供更改构建它的用户上下文的选项 . 任何人都可以提供任何替代品吗?
谢谢,MagicAndi
不是解决此问题的最有效方法,但您可以遍历Web应用程序中的所有网站集/网站,然后调用:
web.DoesUserHavePermissions(userID, SPBasePermissions.Open)
其中“web”是SPWeb对象,userID是您正在检查其访问权限的用户的“DOMAIN \ user.name” . 在RWEP中执行此操作并确保正确处理SPSite / SPWeb对象 .
您可以使用Webservices API:
Determining User's role in a SharePoint site/workspace using the webservices API
一种可能的方法是利用模拟来确定特定用户(当前用户除外)可以通过PortalSiteMapProvider访问的站点和Web . 此处描述了在SharePoint上下文中模拟其他用户的方法:
http://blackninjasoftware.com/2009/04/09/how-to-programmatically-impersonate-users-in-sharepoint/
3 回答
不是解决此问题的最有效方法,但您可以遍历Web应用程序中的所有网站集/网站,然后调用:
其中“web”是SPWeb对象,userID是您正在检查其访问权限的用户的“DOMAIN \ user.name” . 在RWEP中执行此操作并确保正确处理SPSite / SPWeb对象 .
您可以使用Webservices API:
Determining User's role in a SharePoint site/workspace using the webservices API
一种可能的方法是利用模拟来确定特定用户(当前用户除外)可以通过PortalSiteMapProvider访问的站点和Web . 此处描述了在SharePoint上下文中模拟其他用户的方法:
http://blackninjasoftware.com/2009/04/09/how-to-programmatically-impersonate-users-in-sharepoint/