【发布时间】:2011-12-16 09:58:25
【问题描述】:
我需要在我的 Sharepoint (2007) webpart 中找出当前用户所属的所有 AD 组 SID。
我想使用 System.DirectoryServices.AccountManagement 命名空间:
using (var context = new PrincipalContext( ContextType.Domain ))
{
using (var user = UserPrincipal.FindByIdentity( context, accountName ))
{
var groups = user.GetAuthorizationGroups();
...
}
}
,但我收到以下错误:
事件 ID:10016 通过权限设置(特定于应用程序)是地址 localhost 的用户 NT AUTHORITY \ NETWORK SERVICE(使用 LRPC)的 SID(S-1-5-20)未被授权为具有 CLSID 的 COM 服务器应用程序激活(本地) {61738644-F196-11D0-9953-00C04FD919C1}
这个http://support.microsoft.com/kb/899965 可以解决这个问题 但是这种方法需要更改注册表值(应用程序的所有权,因此您可以在 dcomcnfg 更改应用程序的值)以及稍后在 dcomcnfg 的 COM 安全性中更改用户权限,这对我来说不是一个选项。
还有其他方法可以访问 Sharepoint 中当前用户的组 SID?
我真的希望我能在 SPContext.Current.Web.CurrentUser.Groups 中找到这些值,但显然不是。
【问题讨论】:
标签: c# sharepoint active-directory