2016-07-01 2 views
0

Я использую этот код 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,1 или -1 .. Теперь вам нужно вернуть что-то еще, например, словарь или список. Какой подход вы собираетесь использовать? – Hackerman

+0

Действительно не знаю, я новичок в AD. Я думал, что после того, как логин был проверен, он будет вызывать другую функцию, чтобы определить, в каких группах был пользователь, если бы они были членами указанной группы, позже, это позволило бы им продвигаться. Мне кажется, мне просто нужно вернуть список групп на передний план. Я могу справиться с этим. – Tinman

+0

Возможный дубликат [Как получить группы пользователей в Active Directory? (C#, asp.net)] (http://stackoverflow.com/questions/5309988/how-to-get-the-groups-of-a-user-in-active-directory-c-asp-net) – Hackerman

ответ

0

У меня есть этот код, чтобы получить свойства пользователя в активном каталоге, возможно, может помочь вам, просто добавить кнопку, и если вы хотите раскомментировать первые три строки комментариев и комментарии первые три строки кода после заявлений. (извините код на испанском языке).

Private Sub Button1_Click (отправитель Как System.Object, е Как 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

+0

Вы также можете проверить это [страница] (http://stackoverflow.com/questions/5162897/how-can-i-get-a-list-of-users-from-active-directory?rq=1) – Rchrd

 Смежные вопросы

  • Нет связанных вопросов^_^