为什么我的WPF应用程序中出现System.Security.AccessControl.PrivilegeNotHeldException?

时间:2017-10-05 14:55:50

标签: c# .net wpf security

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

1 个答案:

答案 0 :(得分:1)

事实证明,由于在openGoogleMaps()对话框中启用All Common Language Exceptions,我才看到此异常。

此异常似乎在内部抛出。