为什么我在我的WPF应用程序中获取System.Security.AccessControl.PrivilegeNotHeldException?
问题描述:
我有一个简单WPF应用这是试图找到ActiveDirectory中组给定的用户中的一员。检索组的代码是:为什么我在我的WPF应用程序中获取System.Security.AccessControl.PrivilegeNotHeldException?
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)
:
系统.Security.AccessControl.PrivilegeNotHeldException:'进程 不具有此操作所需的'SeTcbPrivilege'权限。“ 此操作”。
若我运行一个应用程序Console
的代码,这不会发生。任何想法可能会导致这种情况?
答
原来我只看到这个例外,因为在Common Language Exception
对话框中启用了All Common Language Exceptions
。
此异常似乎在内部抛出。
您是否曾尝试以管理员身份运行此应用程序?是在同一用户下运行的consolapp? –