首页 / 知识

关于.net:使用System.DirectoryServices对域用户进行身份验证

2023-04-13 09:46:00

关于.net:使用System.DirectoryServices对域用户进行身份验证

Authenticating Domain Users with System.DirectoryServices

给定域用户的用户名和密码,以编程方式验证该用户的最佳方法是什么?


似乎.NET 3.5添加了一个新的名称空间来解决此问题-System.DirectoryServices.AccountManagement。 代码示例如下:

1
2
3
4
5
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
3
4
5
6
7
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)一起使用的超酷优势。


用户身份验证编程用户名

最新内容

相关内容

热门文章

推荐文章

标签云

猜你喜欢