给定域用户的用户名和密码,以编程方式验证该用户的最佳方式是什么?使用System.DirectoryServices验证域用户
6
A
回答
8
你可以使用一些黑客来验证只。
Try
Dim directoryEntry as New DirectoryEntry("LDAP://DomainController:389/dc=domain,dc=suffix", "username", "password")
Dim temp as Object = directoryEntry.NativeObject
return true
Catch
return false
End Try
如果用户无效,则无法访问目录条目NativeObject并引发异常。虽然这不是最有效的方式(例外是邪恶的,等等等等),但它是快速和无痛的。这也具有与所有LDAP服务器一起工作的超酷优势,而不仅仅是AD。
16
看来,.NET 3.5添加了一个新的命名空间来处理这个问题 - System.DirectoryServices.AccountManagement。码样本低于:
Private Function ValidateExternalUser(ByVal username As String, ByVal password As String) As Boolean
Using context As PrincipalContext = New PrincipalContext(ContextType.Domain, _defaultDomain)
Return context.ValidateCredentials(username, password, ContextOptions.Negotiate)
End Using
End Function
的命名空间也似乎用于操纵域帐户(改变密码,到期的口令等)提供了很多方法。
相关问题
- 1. 验证域用户凭据
- 2. JavaScript验证使用领域
- 3. 使用php验证域名
- 4. 使用j_security_check验证用户
- 5. 跨域Ajax POST和用户验证
- 6. 了解跨域用户身份验证
- 7. 跨多个域的用户验证
- 8. 使用证书和Kerberos验证用户?
- 9. 使用libcurl验证用户凭证
- 10. 使用sfGuard验证用户凭证
- 11. 使用ADAM验证DMZ区域中的用户
- 12. 验证用户
- 13. 尝试访问使用System.DirectoryServices时卸载的应用程序域
- 14. 通过使用子域用户在父域中进行身份验证?
- 15. 从System.DirectoryServices使用StartTLS与LDAP
- 16. 使用LINQ2SQL用于验证用户
- 17. 如何使用jquery进行域验证?
- 18. 使用Zend验证顶级域名1
- 19. 身份验证SQL 2005使用域帐户从ASP
- 20. 验证用户凭证
- 21. 验证用户 - Laravel
- 22. 用户名验证
- 23. Facebook用户验证
- 24. Django验证用户
- 25. Kohana - 验证用户?
- 26. 验证用户Laravel
- 27. System.DirectoryServices所需的用户权限
- 28. 通过System.DirectoryServices管理终端用户
- 29. 使用Twitter身份验证验证用户
- 30. 使用用户名使用UnboundID验证Active Directory用户
你应该永远不会捕获所有这样的异常......当你无法访问LDAP服务器时会抛出COMException,所以这就是你将要捕获的东西。 – 2011-01-06 04:29:02