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