比较当前登录的活动目录和db用户?

时间:2012-03-14 11:21:47

标签: c# asp.net active-directory

如何检查登录到计算机的当前用户是活动目录用户还是应用程序的一部分?

我正在构建一个基于AD进行身份验证的遗留应用程序的扩展。该数据库包含ad_user_name,我想将ad_user_name与活动目录中实际保存的用户名进行比较。

如果用户名相同,则可以访问我的编辑视图。如果用户不同,则出现问题,他们无法看到任何内容。

编辑:服务器可能只运行.NET 2.0

1 个答案:

答案 0 :(得分:1)

如果您使用.net 3.5,请改用此代码。

验证用户身份:

PrincipalContext adContext = new PrincipalContext(ContextType.Domain);

using (adContext)
{
     return adContext.ValidateCredentials(UserName, Password);
}

如果您需要找到用户对该对象的R / W属性,请执行以下操作:

PrincipalContext context = new PrincipalContext(ContextType.Domain);
UserPrincipal foundUser = UserPrincipal.FindByIdentity(context, "jdoe");

这是使用System.DirectoryServices.AccountManagement命名空间,因此您需要将其添加到using语句中。

如果您需要将UserPrincipal对象转换为DirectoryEntry对象以使用旧代码,您可以执行以下操作:

DirectoryEntry userDE = (DirectoryEntry)foundUser.GetUnderlyingObject();