使用 System.DirectoryServices 对域用户进行身份验证
给定域用户的用户名和密码,以编程方式验证该用户的最佳方法是什么?
Given a username and a password for a domain user, what would be the best way to authenticate that user programatically?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
.NET 3.5 似乎添加了一个新的命名空间来处理此问题 - System.DirectoryServices.AccountManagement。 代码示例如下:
命名空间似乎还提供了很多操作域帐户的方法(更改密码、过期密码等)。
It appears that .NET 3.5 added a new namespace to deal with this issue - System.DirectoryServices.AccountManagement. Code sample is below:
The namespace also seems to provide a lot of methods for manipulating a domain account (changing passwords, expiring passwords, etc).
您可以使用一些技巧来仅进行身份验证。
如果用户无效,则无法访问目录条目 NativeObject 并引发异常。 虽然这不是最有效的方法(异常是邪恶的,等等),但它快速且无痛。 这还有一个超酷的优势,可以与所有 LDAP 服务器一起使用,而不仅仅是 AD。
You can use some hacks to authenticate only.
If the user is not valid, the directory entry NativeObject cannot be accessed and throws an exception. While this isn't the most efficient way (exceptions are evil, blah blah blah), it's quick and painless. This also has the super-cool advantage of working with all LDAP servers, not just AD.