4 Stimmen

LogonUser funktioniert nur für meine Domäne

Ich muss einen Benutzer mit C# verkörpern. Ich verwende die LogonUser Win32 API. Dies funktioniert gut, wenn ich Benutzer aus derselben Domäne wie der aktuell angemeldete Benutzer vertrete. Ich erhalte jedoch "false" als Antwort, wenn ich versuche, Benutzer aus anderen Domänen zu verkörpern.

Was kann die Ursache dafür sein?

5voto

Shiraz Bhaiji Punkte 62129

Wie Joel sagt, brauchen Sie Vertrauen zwischen den Domänen.

Sie müssen auch auf den Sicherheitskontext des Prozesses achten, der die Delegierung vornimmt, und darauf, in welcher Domäne sich der Rechner befindet, auf dem Sie arbeiten.

Sowohl der Rechner als auch das Benutzerkonto des Prozesses müssen von der Domäne, auf die Sie zugreifen wollen, als vertrauenswürdig eingestuft werden.

Das bedeutet, dass Ihr Code in der Domäne ausgeführt werden sollte, auf die Sie zugreifen wollen.

Ich hoffe, das hilft

Shiraz

4voto

Joel Gauvreau Punkte 3586

Versuchen Sie, GetLastError direkt nach dem Fehlschlag von LogonUser aufzurufen, um zu sehen, ob eine Fehlerinformation ausgegeben wird.

http://msdn.microsoft.com/en-us/library/ms679360(VS.85).aspx

Es kann ein Problem mit dem Aufruf von GetLastError aus c# geben.
Weitere Informationen zu diesem Thema finden Sie hier: http://blogs.msdn.com/adam_nathan/archive/2003/04/25/56643.aspx

Besteht ein Vertrauensverhältnis zwischen Ihren beiden Domänen? Wenn nicht, wird LogonUser fehlschlagen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X