我有一个简单的 WPF 应用程序,它试图找到给定用户所属的 ActiveDirectory 组。检索组的代码是:
public static HashSet<string> GetUserGroups(string userLogon)
{
var groups = new HashSet<string>(StringComparer.InvariantCultureIgnoreCase);
var identity = new WindowsIdentity(userLogon);
if (identity.Groups == null) { return groups; }
var type = typeof(NTAccount);
foreach (var group in identity.Groups)
{
groups.Add(group.Translate(type).ToString());
}
return groups;
}
但是,当我尝试在应用启动时运行此功能时,当方法尝试创建new WindowsIdentity(userLogon)
时,我会抛出以下异常:
System.Security.AccessControl.PrivilegeNotHeldException:'进程 不具备所需的'SeTcbPrivilege'特权 这个操作。'
如果我在Console
应用中运行代码,则不会发生这种情况。关于可能导致这种情况的任何想法?
答案 0 :(得分:1)
事实证明,由于在openGoogleMaps()
对话框中启用All Common Language Exceptions
,我才看到此异常。
此异常似乎在内部抛出。