我正在使用此asmx.VB代码来验证AD中的用户。我还要带回他们所属的团体。任何帮助,将不胜感激。
<WebMethod(Description:="Checks User against Active Directory.", EnableSession:=False)> _
Public Function CHECK_AD(ByVal userid As String, ByVal Password As String) As Integer
Dim iErrorNumber As Integer
Dim isPass As Boolean = False
Try
Dim pc As New PrincipalContext(ContextType.Domain, "SomeDomain")
isPass = pc.ValidateCredentials(userid, Password, ContextOptions.Negotiate)
If isPass = True Then
iErrorNumber = 1
Else
iErrorNumber = 0
End If
Catch ex As Exception
iErrorNumber = -1
End Try
Return iErrorNumber
End Function
答案 0 :(得分:0)
我有这个代码来获取活动目录中的用户属性,也许可以帮助你,只需添加一个按钮,如果你想取消注释前三个注释行并在声明后注释前三行代码。 (对不起,代码是西班牙语。)
Private Sub Button1_Click(sender As System.Object,e As System.EventArgs)处理Button1.Click
Dim objetoUsuario, gruposSeguridad
Dim ultimoInicioSesion As String
Dim dominio As String
Dim nombreUsuario As String
Dim estadoCuenta As String
Dim gruposSeguridadUsuario As String = ""
'dominio = InputBox("Nombre del dominio Windows Server", "")
dominio = Environment.UserDomainName
'nombreUsuario = InputBox("Nombre de usuario del dominio", "")
nombreUsuario = Environment.UserName
' On Error GoTo cError
On Error Resume Next
objetoUsuario = GetObject("WinNT://" + dominio + "/" + nombreUsuario + ",user")
If Err.Number = 0 Then
If objetoUsuario.AccountDisabled = True Then
estadoCuenta = "Deshabilitado"
ultimoInicioSesion = "No existe"
Else
estadoCuenta = "Habilitado"
ultimoInicioSesion = objetoUsuario.Get("Lastlogin")
End If
gruposSeguridad = ""
For Each gruposSeguridad In objetoUsuario.Groups
If gruposSeguridadUsuario = "" Then
gruposSeguridadUsuario = gruposSeguridad.Name
Else
gruposSeguridadUsuario = gruposSeguridadUsuario + ", " + gruposSeguridad.Name
End If
Next
'Mostramos los datos del usuario
MsgBox("Nombre completo: " & objetoUsuario.Get("Fullname") & vbCrLf & _
"Descripción: " & objetoUsuario.Get("Description") & vbCrLf & _
"Nombre: " & objetoUsuario.Get("Name") & vbCrLf & _
"Carpeta de inicio: " & objetoUsuario.Get("HomeDirectory") & vbCrLf & _
"Script de inicio: " & objetoUsuario.Get("LoginScript") & vbCrLf & _
"Último inicio de sesión: " & ultimoInicioSesion & vbCrLf & _
"Perfil: " & objetoUsuario.Get("Profile") & vbCrLf & _
"Estado de la cuenta: " & estadoCuenta & vbCrLf & _
"Grupos seguridad: " & gruposSeguridadUsuario, vbInformation + vbOKOnly)
objetoUsuario = Nothing
Else
MsgBox("No existe el usuario " + nombreUsuario + " o el dominio " + dominio, vbExclamation + vbOKOnly)
End If
'cSalir:
' Exit Sub
'
'cError:
' MsgBox "Error " + CStr(Err.Number) + " " + Err.Description
' GoTo cSalir
End Sub