2017-10-05 173 views
0

我有一个简单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的代码,这不会发生。任何想法可能会导致这种情况?

+0

您是否曾尝试以管理员身份运行此应用程序?是在同一用户下运行的consolapp? –

回答

0

原来我只看到这个例外,因为在Common Language Exception对话框中启用了All Common Language Exceptions

此异常似乎在内部抛出。

相关问题