繁体   English   中英

验证UPN和NT登录名的最简单方法是什么?

[英]What is the easiest way to validate a UPN and a NT login name?

我们允许用户使用NT帐户名(domain \\ account)或UPN(account @ email,xxx)输入Active Directory帐户信息。 我想编写一些代码来验证活动目录中的帐户,然后再允许用户继续操作。 请注意,我们不验证密码,仅验证帐户名。

我可以使用UserPrincipal.FindByIdentity ,但是,这只需要一个用户名。

我可以使用.NET验证两种格式的帐户名吗? 还是我被降级为从帐户名中解析出域以验证用户输入的两个部分? 稍后会有点混乱,不是吗?

尝试从UPN创建WindowsIdentity

WindowsIdentity wi = new WindowsIdentity("alias@example.com");

对于在AD中有效的UPN,它将成功,对于无效的UPN将引发异常。 验证UPN的过程必须连接到AD,并具有适当的访问权限(即,由于对模拟上下文的委派约束而无法进行匿名化)。

看一下System.DirectoryServices.AccountManagement命名空间,尤其是PrincipalSearcher 我认为您可以使用格式良好的QueryFilter( 通过示例查询)来执行快速FindOne 并检查帐户名或UPN。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM