4
A
回答
5
既然你在.NET 3.5及以上,你應檢查System.DirectoryServices.AccountManagement
(S.DS.AM)命名空間。在這裏閱讀全部內容:
Managing Directory Security Principals in the .NET Framework 3.5
基本上,你可以定義域範圍內,並可以輕鬆地查找用戶和/或組AD:
public string GetLoginName(string userName)
{
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find user by name
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, userName);
if(user != null)
return user.SamAccountName;
else
return string.Empty;
}
新S.DS.AM使它真的很容易在公元玩弄用戶和組:
+0
嘿marc_s, 你知道我爲什麼得到這個錯誤嗎? (&(objectCategory = user)(objectClass = user)(|(userPrincipalName =)(distinguishedName =)(name =)))搜索過濾器無效。 – SamekaTV 2011-03-17 15:17:27
1
使用.NET庫中,可以使用下面的代碼來獲取用戶名得到他的登錄名後或從Active Directory
using System.Management;
using System.Management.Instrumentation;
using System.Runtime.InteropServices;
using System.DirectoryServices;
ManagementObjectSearcher Usersearcher = new ManagementObjectSearcher("Select * From Win32_ComputerSystem Where (Name LIKE 'ws%' or Name LIKE 'it%')");
ManagementObjectCollection Usercollection = Usersearcher.Get();
string[] sep = { "\\" };
string[] UserNameDomain = Usercollection.Cast<ManagementBaseObject>().First()["UserName"].ToString().Split(sep, StringSplitOptions.None);
我添加任何信息 「SELECT * FROM的Win32_ComputerSystem哪裏(名稱,如 'WS%' 或名稱LIKE '它%')」 這將由全名獲取用戶名
,希望能幫助您
1
這實際上做幾乎相反的,但可以是一個起點,以檢查並根據需要修改:
1
檢查此鏈接已所需的代碼snipple
using (DirectoryEntry entry = new DirectoryEntry())
{
entry.Username = "DOMAIN\\LOGINNAME";
entry.Password = "PASSWORD";
DirectorySearcher searcher = new DirectorySearcher(entry);
searcher.Filter = "(objectclass=user)";
try
{
searcher.FindOne();
{
//Add Your Code if user Found..
}
}
catch (COMException ex)
{
if (ex.ErrorCode == -2147023570)
{
ex.Message.ToString();
// Login or password is incorrect
}
}
}
0
不認同:
private string GetLogonFromDisplayName(string displayName)
{
var search = new DirectorySearcher(string.Format("(&(displayname={0})(objectCategory=user))", displayName));
search.PropertiesToLoad.Add("sAMAccountName");
SearchResult result = search.FindOne();
if (result != null)
{
var logonNameResults = result.Properties["sAMAccountName"];
if (logonNameResults == null || logonNameResults.Count == 0)
{
return null;
}
return logonNameResults[0].ToString();
}
return null;
}
相關問題
- 1. Active Directory:如何從登錄控件中檢索用戶名和密碼
- 2. 從Websphere中檢索登錄用戶的Active Directory數據
- 3. Active Directory檢查用戶是否登錄
- 4. 如何從Javascript中檢索Azure Active Directory登錄的用戶信息?
- 5. 更新Active Directory用戶登錄域名
- 6. 如何在Active Directory中更改用戶的登錄名
- 7. XPage檢索當前登錄的Active Directory用戶
- 8. 如何顯示登錄用戶使用PHP的Active Directory全名?
- 9. 從Active Directory檢索用戶憑據
- 10. Active Directory登錄
- 11. 如何登錄到Active Directory?
- 12. 從Active Directory中檢索OU's
- 13. 檢查用戶登錄在Java應用程序中的Active Directory
- 14. 如何從Active Directory中檢索所有用戶?
- 15. Azure Active Directory登錄
- 16. 使用登錄名稱在Active Directory中查找用戶
- 17. 如何從Azure Active Directory檢索用戶信息
- 18. 如何檢查WPF中Active Directory中的用戶名
- 19. Active Directory通過登錄檢查
- 20. 的Active Directory登錄問題
- 21. 如何使用登錄人員的憑據來搜索Active Directory?
- 22. Apache shiro Active Directory通過域名登錄
- 23. 如何獲取用戶上次登錄的Active Directory
- 24. 如何獲取Azure Active Directory的密碼策略登錄用戶
- 25. 如何檢查當前登錄用戶是否存在於Active Directory中
- 26. 我該如何檢查用戶是否已經登錄到Windows Active Directory中
- 27. IIS Active Directory登錄,但將MSXML作爲匿名用戶運行
- 28. 使用LDAP從Active Directory中檢索用戶屬性 - JAVA
- 29. 試圖返回讀取從Active Directory中的登錄名空
- 30. 如何獲取通過Active Directory登錄到Mac的用戶的域名
修改我的答案..請再檢查一遍 – Hiyasat 2011-03-17 10:55:43
您已接受的答案。如果你想改善這個問題,編輯它。如果您有新問題,請提出一個新問題。 – Will 2011-03-17 13:38:59
有些人確實發佈了我沒有要求的答案。最後marc_s提供了一個解決方案。 – SamekaTV 2011-03-17 13:42:51