2017-10-05 170 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

此異常似乎在內部拋出。

相關問題