Kopieren von Dateien mit unterschiedlichen Berechtigungen (Net 2.0)

09/07/2008 - 14:10 von Eric Maximilian | Report spam
Hallo,

ich habe folgendes Problem: ich muss bestimmte Dateien aus einem UNC-
Pfad in einen anderen UNC-Pfad kopieren. An den jeweiligen Fileservern
muss ich mich unterschiedlich anmelden. Bei ersterem ist eine lokale
Anmeldung mit User/Password, an letzterem muss ich sogar in eine
andere Domàne greifen (und natürlich andere User/Password-
Kombination).
File.CopyTo() erscheint da leider nicht màchtig genug. Hat irgendwer
eine Idee, wie ich das umsetzen könnte?

Danke und schönen Tag noch,

Eric
 

Lesen sie die antworten

#1 Ilija Injac
09/07/2008 - 18:58 | Warnen spam
Hallo Eric,

die "Impersonisation", also die Anmeldung als ein bestimmter User mit
entsprechenden Rechten erfolgt über P/Invoke mit

[DllImport("advapi32.dll", SetLastError = true)]
public static extern bool LogonUser(
String lpszUsername,
String lpszDomain,
String lpszPassword,
int dwLogonType,
int dwLogonProvider,
ref IntPtr phToken);

Bei Erfolg, liefert LogonUser "true" zurück, dies muss vorher geprüft
werden. Mit einem WindowsImpersonationContext und einem
WindowsIdentity-Object kann anschließend die "Impersonisation" durchgeführt
werden.

Dabei handelt es sich natürlich um "unmanaged-code" der als potenziell
unsicher gilt. Aus diesem Grund ist eine sehr sauberes Exception-Handling zu
empfehlen.

Hier findest Du ein schönes Beispiel:

http://www.codeproject.com/KB/cs/Us...in_Ne.aspx

Gruß,
Ilija



"Eric Maximilian" schrieb im Newsbeitrag
news:
Hallo,

ich habe folgendes Problem: ich muss bestimmte Dateien aus einem UNC-
Pfad in einen anderen UNC-Pfad kopieren. An den jeweiligen Fileservern
muss ich mich unterschiedlich anmelden. Bei ersterem ist eine lokale
Anmeldung mit User/Password, an letzterem muss ich sogar in eine
andere Domàne greifen (und natürlich andere User/Password-
Kombination).
File.CopyTo() erscheint da leider nicht màchtig genug. Hat irgendwer
eine Idee, wie ich das umsetzen könnte?

Danke und schönen Tag noch,

Eric

Ähnliche fragen