我需要确定指定用户可以通过SharePoint API在SharePoint Web应用程序中访问的网站和网站。请注意,指定的用户与调用代码的当前用户不同。我最初想使用PortalSiteMapProvider,但它没有提供一个选项来改变它所建立的用户上下文。任何人都可以提供任何替代方案吗?确定指定用户可以以编程方式访问的SharePoint站点和站点?
感谢,MagicAndi
我需要确定指定用户可以通过SharePoint API在SharePoint Web应用程序中访问的网站和网站。请注意,指定的用户与调用代码的当前用户不同。我最初想使用PortalSiteMapProvider,但它没有提供一个选项来改变它所建立的用户上下文。任何人都可以提供任何替代方案吗?确定指定用户可以以编程方式访问的SharePoint站点和站点?
感谢,MagicAndi
不是最有效的解决了这个问题,但你可以通过所有的网站集迭代/ Web应用程序中,然后网呼叫:
web.DoesUserHavePermissions(userID, SPBasePermissions.Open)
其中“web”是SPWeb对象,userID是您正在检查访问权限的用户的“DOMAIN \ user.name”。在RWEP中执行此操作,并确保正确处理SPSite/SPWeb对象。
谢谢爱尔兰厨师,它看起来像我们使用的一种可能的方法。 +1 – MagicAndi 2009-10-09 15:12:53
一种可能的方法是利用模拟来确定网站和网特定用户(比其他当前用户)可以通过PortalSiteMapProvider访问。这里描述了一种在SharePoint背景假冒其他用户的方法:
http://blackninjasoftware.com/2009/04/09/how-to-programmatically-impersonate-users-in-sharepoint/
意识到您需要使用API,但您也可能希望看到SP Administration Toolkit中的权限工具:http://blog.beckybertram.com/Lists/Posts/Post.aspx?ID=56 – 2009-10-09 10:44:21
还有SharePoint寿司可能很有用(开源):http://www.codeplex.com/sushi – 2009-10-09 10:45:23