Verständnis .NET IMPLOSATION
.NET Impathation ermöglicht die Code-Ausführung unter einem benutzerdefinierten Benutzerkonto, das häufig mit dem Zugriff auf Anmeldeinformationen basiert. Das .NET -Framework liefert die erforderlichen APIs sowohl für die Verwaltung von Imitationen als auch für die Benutzerkonto.
Identitätstechniken
Der System.Security.Principal
Namespace bietet verschiedene Möglichkeiten, um Identitätswechsel zu erreichen:
WindowsIdentity.RunImpersonated
: Führen Sie den Code mit einem angegebenen Benutzer -Token aus, wodurch ein Action
oder Func<T>
für den Codeblock angenommen wird. WindowsIdentity.Impersonate
: generiert ein WindowsImpersonationContext
Objekt, wodurch die Imparkierung innerhalb eines using
-Blocks für die strukturierte Ressourcenverwaltung aktiviert wird. Zugriff auf Benutzerkonten mit Anmeldeinformationen
Zugriff auf ein Benutzerkonto mit bereitgestellten Anmeldeinformationen umfasst in der Regel die native Win32 -API LogonUser
:
[DllImport("advapi32.dll")] internal static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, out IntPtr phToken);
während funktional, kann LogonUser
kompliziert sein. Eine einfachere Alternative ist die SimpleImpersonation
Bibliothek:
using SimpleImpersonation; var credentials = new UserCredentials(domain, username, password); using (SafeAccessTokenHandle userHandle = credentials.LogonUser(LogonType.Interactive)) { // Your impersonated code here }
Einschränkungen: Remote -Imitation
Imitation ist von Natur aus lokal; Es erstreckt sich nicht auf Remote -Computer, es sei denn, sie teilen die gleiche Domäne oder besitzen eine Vertrauensbeziehung.
Das obige ist der detaillierte Inhalt vonWie führe ich Imitation in .NET durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!