我正在开发一个网站,它将对用户进行身份验证并用新密码更改旧密码。
我正在使用 WinNT 字符串连接和设置密码,没有旧密码检查,工作正常。
我的代码如下:
'actual setting password
Dim entryD As New DirectoryEntry("WinNT://" + Environment.MachineName + ",computer")
Dim NewUser As DirectoryEntry = entryD.Children.Find(username, "user")
Dim nativeobject As Object = NewUser.NativeObject
NewUser.Invoke("SetPassword", New Object() {strPassNew})
NewUser.CommitChanges()
'setting password ends
这工作正常,但身份验证代码不起作用。
如下:
'authentication starts
Dim adsiPath As String
adsiPath = String.Format("WinNT://{0}/{1},user", domain, username)
Dim userEntry = New DirectoryEntry(adsiPath, username, password, AuthenticationTypes.Secure)
'Dim nativeobject1 As Object = userEntry.NativeObject
Dim newobj As ActiveDs.IADsUser = userEntry.NativeObject
authent = True
'authentication ends
这会进行身份验证,但它抛出的异常是:
logon failure: unknown username or bad password
第一次,但如果我再做一次,错误是:
“不允许同一用户使用多个用户名多次连接到服务器或共享资源。断开与服务器或共享资源的所有先前连接,然后重试。”
我不想发生这种情况......我不想使用 LDAP,我想要一个解决方案来验证旧密码。请帮忙?