比较当前登录的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
如果您使用.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();