![]() |
NICHT INTERAKTIVER Windows Active directory logon
Hallo!
Ich brauche eine routine um zu testen ob der benutzer, der gerade angemeldet ist, in dem active directory des domain controllers vorhanden ist. Entsprechend muss ich die Berechtigung testen. Das aber ohne die Eingabe des Benutzers (praktisch wie outllok das macht). Die Lösungen die ich gefunden habe, brauchte alle eine interaktive Eingabe des Benutzers ![]() Kennt jemand einen eleganten Weg? ISKywalker |
Re: NICHT INTERAKTIVER Windows Active directory logon
Hi,
wenn der Benutzer an der Domain angemeldet ist, dann ist er dort auch vorhanden - warum willst du nochmal nachsehen? Grüße vom marabu |
Re: NICHT INTERAKTIVER Windows Active directory logon
Hi!
Ich wollte auch gern erfahren, wie ich den Benutzername ermittlen kann. Aber auch vorgesehen ist eine Feature, die erlaubt, nach einen bestimmte Timeout den Passwort abzufragen(wegen der Sicherheit). Gruß ISKywalker |
Re: NICHT INTERAKTIVER Windows Active directory logon
Melde dich doch unter einem anderen Benutzer am LDAP an.
|
Re: NICHT INTERAKTIVER Windows Active directory logon
Warum denn?
|
Re: NICHT INTERAKTIVER Windows Active directory logon
Dann kannst du die authentifizieren ohne den benutzer nach seinem Passwort Fragen zu müssen.
|
Re: NICHT INTERAKTIVER Windows Active directory logon
Aber outlook macht das, anmelden mit dem benutzerdaten an den active directory server. ICh würde gern auch so was machen :mrgreen: .
|
Re: NICHT INTERAKTIVER Windows Active directory logon
Liste der Anhänge anzeigen (Anzahl: 1)
HI,
probier mal das hier. |
Re: NICHT INTERAKTIVER Windows Active directory logon
du kannst mit dem kerberos/ntlm den prozess des server in den benutzerkontext mit allen tokens bringen.
"impersonate" ist das das stichwort. im msdn sind dazu auch beispiele. diese machen aber eine authentifizierung über netzwerk. du kannst das dann schlanker im arbeitsspeicher abbilden oder du lässt dienst und client doch mit tcp sich unterhalten. such mal nach: AcquireCredentialsHandleA InitializeSecurityContextA CompleteAuthToken AcceptSecurityContext ImpersonateSecurityContext |
Re: NICHT INTERAKTIVER Windows Active directory logon
Hi!
Alter Mann: Ich kriege user = '' ... Die Domaininfos sind aber richtig. Die interessieren mich aber nicht sonderlich, da ich sie auch mit ipconfig bekommen kann. Aber Danke für den Code! generic: deine Antwort ist wirklich generic :-D Ich möchte eigentlich ohne passwort und username, bzw. will ich wissen, ob wie der angemeldet user heißt, und ob er in active directory ist. So wie outlook. in ![]() schreiben die über unified logon. So weit ich es verstanden habe, ein mal anmelden dann bis zum nächsten logoff nie wieder. Genau das möchte ich. In der URL melden sie zwar den Benutzer mittels SSP brauchen aber trotzdem username und string explizit. |
Re: NICHT INTERAKTIVER Windows Active directory logon
Hi!
Ich korrigiere mich. Alter Mann: username wurde gzurückgeliefert, aber nicht login name. D. h. vorname und nachname und nicht mein login. Danke! |
Re: NICHT INTERAKTIVER Windows Active directory logon
Ja was soll ich machen, soll ich dir den Code geben für welchen ein Kunde viel Geld gezahlt hat?
Du kannst einfach das Beispiel im MSDN abtippen, fertig. Andere Variante du kannst den Delphicode bei mir kaufen. Ich habe 8 Stunden dran gesessen, bis der Code fehlerfrei gearbeitet hat. Danach wird sich der Preis richten. Schreib mich dann bitte per PN an. Die Kerberos Lösung erfordert keine Eingaben des Users. Wir können dir doch nicht alles programmieren und du setzt dich ins gemachte Nest. Ich habe dir die Funktionen gesagt, welche benötigt werden. Jetzt leg los. |
Re: NICHT INTERAKTIVER Windows Active directory logon
Hi iskywalker,
LoginName, etwa so?
Delphi-Quellcode:
@generic
function LoginName : String;
var ADSystemInfo : TADSystemInfo; _aUser : IADsUser; begin Result := 'ohne'; ADSystemInfo := TADSystemInfo.Create(Self); try if SUCCEEDED(ADsGetObject('LDAP://' + ADSystemInfo.UserName, IADsUser, _aUser)) then Result := _aUser.Get('sAMAccountName'); finally ADSystemInfo.FreeOnRelease; end; end; Warum so aufgebracht, habe ich etwas überlesen? Gruß |
Re: NICHT INTERAKTIVER Windows Active directory logon
Tausend Dank Alter Mann!
Hätte ich selber drauf kommen können (in der ActiveDs_TLB.pas steht ja alles). Wenn man _aUser zurückgelierfert bekommt, da kann man ne menge infos holen (in der ActiveDs_TLB.pas sind die Funktionen beschrieben). generic: Ich wollte nur einen Einstieg und keine komplette Lösung! Tut mir leid, wenn es dir so viel gekostet hat, dafür habe ich selber wenig Dokumentation gefunden. Wobei fragen darf ich ja noch? Oder wofür ist der forum hier (im schlimmsten fall hätte ich deine Lösung gekauft, aber das thema ist nicht so dringend, und was ich wirklich brauche, habe ich bereits gefunden (Tabelle mit alle user an den Active Directory)). |
Re: NICHT INTERAKTIVER Windows Active directory logon
Ich habe mir deine Ursprungsfrage nochmal durchgelesen und feststellen müssen, dass was ich dir geschrieben habe nicht viel damit zu tun hat.
Das was ich geschrieben habe kann einen Prozess welcher in einen Konto läuft in das Konto des Nutzers bringen (per Kerberos). Allerdings habe ich auch keine Ahnung wo du drauf hinaus willst. Ein PC welcher in einer Domain ist, kann 2 unterschiedliche Arten von Usern anmelden lassen. Lokale User und Domain User Mit den Windows API Funktionen GetUserName und GetUsernameEx kannst du den Usernamen/Domain ermitteln. Ist der User nicht im AD wird er sich nicht anmelden können an der Kiste. Also brauchst du eigendlich nur zu prüfen ob er lokales Konto oder ein Domainkonto nutzt. Daher meine ich brauchst du keine LDAP-Anfrage machen. |
Re: NICHT INTERAKTIVER Windows Active directory logon
Uhm guter punk!
Ich muss aber für ein anderes Program die email bekommen, und mit IADsUser ist das prima gelöst. Ich hoffe nicht zu sehr zu nerven, aber wie bekommt man die Info, dass ein user lokal angemeldet ist, und nicht über das netzwerk OHNE LDAP ? Geht das über LookUpAccountName (testen ob local geht dann in der domain, wie ![]() DAnke noch mal! |
Re: NICHT INTERAKTIVER Windows Active directory logon
die email hat aber nichts mit dem benutzerkonto zu tun.
natürlich der exchangeserver erweitert das ad um die emailfelder, aber der nutzer braucht ja kein exchangekonto verwenden. der nutzer könnte ja auch ein z.b. thunderbird verwenden mit einen gmail konto. auch das exchange konto ist ist nicht an einer emailadresse gebunden. über drittanbieter wie z.b. gfi kann das postfach auch anders gefüllt werden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz