2017-12-14 1 views
0

der Code ich habe unten funktioniert, aber es verwendet nicht das Passwort, das vom Client übergeben wird. Nachdem ich den richtigen Benutzer im AD gefunden habe, gibt es eine Möglichkeit, das Passwort, das vom Client mit dem Passwort im AD übergeben wird, zu vergleichen?passendes Passwort vom Client mit Passwort in AD

Danke!

Public Class FordLoginController 
    Inherits ApiController 
    Public Class StoreCredentials 
     Public Property UsernameAX As String 

     Public Property PasswordAX As String 
    End Class 

    Public Function PostValue(<FromBody()> ByVal creds As StoreCredentials) As HttpResponseMessage 
     Dim username As String = creds.UsernameAX 
     Dim password As String = creds.PasswordAX 

     Dim ctx As New PrincipalContext(ContextType.Domain, "ford", "dc=biz,dc=ford,dc=com") 
     Dim user As UserPrincipal = UserPrincipal.FindByIdentity(ctx, username) 
     Dim response As HttpResponseMessage 
     If user IsNot Nothing Then 
      response = Request.CreateResponse(HttpStatusCode.Found) 
      response.Headers.Location = New Uri("/loginAndContinue/login.aspx") 
      Return response 
     End If 
     response = Request.CreateResponse(HttpStatusCode.Forbidden) 
     Return response 
    End Function 

End Class 
+0

'aber nicht das Passwort verwenden, das von dem Klienten' übergeben wird und dann gesagt, Sie 'ist es gibt eine Möglichkeit, das Passwort, das vom Client mit dem Passwort in der AD übergeben wird, zu vergleichen, das ist verwirrend und nicht ma ke irgendeinen Sinn. *** Wenn Sie das Passwort nicht vom Client verwenden, wie können Sie es mit dem von AD *** abgleichen? Bitte klären Sie, was Sie meinen. – Codexer

+0

@Codexer Ich meine, ich möchte das Passwort verwenden, das übergeben wird, aber ich kann nicht herausfinden, wie es mit dem Kennwort in der AD übereinstimmen. – SkyeBoniwell

Antwort

1

Von VBForums

http://www.vbforums.com/showthread.php?352349-Validate-Login-against-Active-Directory

Private Function ValidateActiveDirectoryLogin(ByVal Domain As String, ByVal Username As String, ByVal Password As String) As Boolean 
     Dim Success As Boolean = False 
     Dim Entry As New System.DirectoryServices.DirectoryEntry("LDAP://" & Domain, Username, Password) 
     Dim Searcher As New System.DirectoryServices.DirectorySearcher(Entry) 
     Searcher.SearchScope = DirectoryServices.SearchScope.OneLevel 
     Try 
      Dim Results As System.DirectoryServices.SearchResult = Searcher.FindOne 
      Success = Not (Results Is Nothing) 
     Catch 
      Success = False 
     End Try 
     Return Success 
    End Function 

Nutzung

If ValidateActiveDirectoryLogin("VBForums", "Woof", "Mouse") Then 
    'do something 
End If 
Verwandte Themen