比较当前登录的active directory和db用户

本文关键字:directory db 用户 active 登录 比较 | 更新日期: 2023-09-27 18:27:50

如何检查登录到机器上的当前用户是否是active directory用户以及应用程序的一部分?

我正在构建一个基于AD进行身份验证的遗留应用程序的扩展。数据库有AD_user_name,我想将AD_username与active directory中实际拥有的用户名进行比较。

如果用户名相同,则可以访问我的编辑视图。如果用户不同,那么出现了问题,他们什么都看不见。

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

比较当前登录的active directory和db用户

如果您使用.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();