Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1551 | Anzahl registrierter User: 1841 | Besucher online: 201
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

LDAP - Authentifizieren eines Benutzers in der Domäne


Autor: Konstantin Gross
Sprache: VB.NET
Bewertung:
5.44 (2 votes)
Anzahl der Aufrufe: 10278
  
Kick it on dotnet-kicks.de  

Beschreibung:

Kann ein Benutzer in der Domäne authentifiziert werden?

UPDATE:
Nun wird das Passwort dem Active Directory verschlüsselt übermittelt. Danke an Volker Steitz für den Hinweiß.


Abgelegt unter: LDAP, Authenzifierung, Domäne, Active Directory, AD, SecureString.



Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Imports System.Security
Imports System.DirectoryServices
Imports System.DirectoryServices.ActiveDirectory

Public Shared Function Authenticate(ByVal domain As String, ByVal username As String, ByVal password As String) As Boolean 
    Dim pwd As New SecureString() 
    Dim bAuth As Boolean = False 
    Dim entry As DirectoryEntry = Nothing 
    
    'Durchlaufe das Passwort und hänge es dem SecureString an 
    For Each c As Char In password 
        pwd.AppendChar(c) 
    Next 
    
    'Bewirkt, dass das Passwort nicht mehr verändert werden kann 
    pwd.MakeReadOnly() 
    
    'Passwort wird einem Pointer übergeben, damit dieser später "entschlüsselt" werden kann 
    Dim pPwd As IntPtr = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(pwd) 
    
    Try 
        entry = New DirectoryEntry(String.Concat("LDAP://", domain), username, System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pPwd)) 
        Dim nativeObject As Object = entry.NativeObject 
        bAuth = True 
    Catch ex As Exception 
        bAuth = False 
    Finally 
        entry.Close() 
        entry.Dispose() 
    End Try 
    Return bAuth 
End Function 
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Volker Steitz schrieb am:  21.11.2007 21:32:52

Das halt ich für recht kritisch. Die Angaben wie Password und Username werden unverschlüsselt gegen ein Active Directory geschickt. Null Problem das abzufangen.
Gut wär´s gewesen, wenn du mit den entsprechenden Secure Strings gearbeitet hättest.
Volker Steitz schrieb am:  22.11.2007 00:59:13

Vielleicht baust Du es ja noch ein. Dann gibts bestimmt auch ne Gute Wertung.
Konstantin Gross schrieb am:  22.11.2007 11:56:22

Hallo Herr Steitz,

ich kann das selbstverständlich auch mit SecureStrings machen, das Problem was ich jetzt persönlich sehe ist, dass das Passwort der SecureString Funktion als Klartext übergeben wird. Ich könnte es fest im Code oder eine Textbox übergeben, in beiden Fällen kann man es auslesen. Oder geht es Ihnen hauptsächlich darum das ich das Active Directory unverschlüsselt anspreche?
Volker Steitz schrieb am:  22.11.2007 14:31:22

Hallo Herr Gross,

es ist richtig, dass die Funktion das Kennwort immer noch im Klartext erhält, aber die authentifizierung gegen das LDAP erfolgt dann verschlüsselt. Der Server - der Verzeichnisdienst - befindet sich unhter umständen irgendwo im Campus oder im Metropolitan Netz oder sogar durchs WWW.

Gruß

Volker Steitz
Konstantin Gross schrieb am:  23.11.2007 11:56:01

Hallo Herr Steitz,

ich hab den C# sowie VB.NET Snippet auf den neusten Stand gebracht. Danke nochmals für den Hinweiß.
Volker Steitz schrieb am:  23.11.2007 12:21:10

So iss´es gut.
Jetzt hab auch ich die 10 gedrückt.

Gruß Volker
Konstantin Gross schrieb am:  23.11.2007 13:38:20

Vielen Dank :)


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.