2013-01-04 240 views
4

可能重複:
How to get the groups of a user in Active Directory? (c#, asp.net)獲取當前登錄的Windows用戶?

有沒有獲得當前登錄的使用System.DirectoryServices.AccountManagement命名空間的用戶的方法嗎?我一直在使用下列內容:

Dim wi As System.Security.Principal.WindowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent() 

    Dim fullName As String = wi.Name.ToString 

    Dim loggedOnUser = fullName.Substring(fullName.IndexOf("\") + 1) 

    Console.WriteLine("The currently logged on user is {0}", loggedOnUser) 

但我想了解當前用戶的詳細信息,如他們屬於純文本的組名,並想知​​道如果AccountManagement命名空間提供了這一點。

使用這只是返回一串數字,我不能做的意義:

For Each item As IdentityReference In wi.Groups 
    Console.WriteLine(item.ToString()) 
Next 
+1

一點幫助:「我想了解當前用戶的詳細信息」:什麼樣的信息? –

+0

你想要什麼樣的信息?從GetCurrent()返回的WindowsIdentity對象包含的信息比只有一個名稱更多。 http://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity.aspx – Abbas

+0

對不起,我應該指定。我需要以純文本的形式獲取它們所屬的組名,我似乎無法弄清楚如何做到這一點。 – Cuthbert

回答

5

您是否在尋找類似的東西?

using (PrincipalContext context = new PrincipalContext(ContextType.Domain)) 
{ 
    UserPrincipal user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, "login"); 
    foreach (var group in user.GetGroups()) 
    { 
     Console.WriteLine(group.Name); 
    } 
} 

編輯:發現它與谷歌的計算器;-) Active directory : get groups where a user is member

相關問題