C#中最简单和最有效的方法是检查Windows用户帐户名是否存在?这是在域环境中。如何检查Windows用户帐户名称是否存在于域中?
- 输入:在[域]用户名/ [用户]格式(例如 “myCompany中\鲍勃”)
- 输出:如果用户名存在则为真,否则为false。
我发现this article但例子也有相关认证和操纵用户帐户和他们假定您已经有一个用户专有名称,而我开始与用户帐户名。
我敢肯定,我可以用AD来解决这个问题,但在我这样做之前,我想知道是否有一个简单的高级API可以满足我的需求。
* UPDATE *
可能有许多方法可以做到这一点,拉斯发布一个可以工作,但我无法弄清楚如何调整它在我的环境中工作。我没有找到一个不同的方法,使用WinNT提供该做的工作对我来说:
public static bool UserInDomain(string username, string domain)
{
string path = String.Format("WinNT://{0}/{1},user", domain, username);
try
{
DirectoryEntry.Exists(path);
return true;
}
catch (Exception)
{
// For WinNT provider DirectoryEntry.Exists throws an exception
// instead of returning false so we need to trap it.
return false;
}
}
附: 对于那些不熟悉上面使用的API的人:您需要添加对System.DirectoryServices的引用以使用它。
我发现的链接帮助我:How Can I Get User Information Using ADSI 这些示例使用ADSI,但也可以应用到.NET DirectoryServices。他们还演示了可能有用的用户对象的其他属性。
爱新版本中,超快正是我所需要的。谢谢! – 2011-02-24 16:23:51