| 

.NET C# Java Javascript Exception

2
Hallo zusammen,

ich möchte gerne auf eine mit Samba eingerichtete Linuxfreigabe mit C# zugreifen um zu prüfen ob Dateien vorhanden sind.
Momentan fehlt mir in C# leider die Möglichkeit mit DirectoryInfo Credentials für den Zugriff zu übergeben.

Hat jemand hierzu eine Idee bzw. Erfahrungen?

,
13thAngel
12.11.2009
13thAngel 363 1 7
3 Antworten
2
Unter Windows kannst Du dem System die Credentials mitteilen, die es zum Zugriff auf eine Netzwerkresource verwenden soll:

EnsureCredentials(@"\\server\folder","username","password");

void EnsureCredentials(string path,string username, string password)
{
string net = @"net use "+path+" /user:" + username + " " + password;
ProcessStartInfo psi = new ProcessStartInfo("cmd", "/C " + net);
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
Process p = Process.Start(psi);
p.WaitForExit();
}


Du müsstest natürlich noch die Rückgabe des Prozesses auswerten (ob geklappt) und ebenso natürlich vorher den User danach fragen :)

Für Linux + Co hab ich leider keine Lösung parat, aber in der MSDN gibt es mit Sicherheit etwas dazu!
13.11.2009
DaSpors 4,1k 1 8
2
Auf die SMB Freigaben eines Samba greife ich via URI zu die lautet
\\rechner\freigabe\pfad\zur\datei

Zu beachten ist das man die Backslashes verwendet und auch Escaped.

Zugangsdaten übergeben ist ebenfalls sehr einfach, dazu verwendet man am besten das net Programm das mit Windows kommt:

# Quelle MSDN
using System.Management;

ManagementClass processClass = new ManagementClass("Win32_Process");
object[] methodArgs = { "net use \\server\share /user:domain\username password", null, null, 0 };
object result = processClass.InvokeMethod("Create", methodArgs);

Console.WriteLine("Creation of process returned: " + result);
Console.WriteLine("Process id: " + methodArgs[3]);


Damit solltest du dich eigentlich angemeldet haben.
Zugangsdaten, Server und Freigabe etc. kannst du ja dynamisch aus einer Datei laden oder der Registrierung, Hardcoden ist keine gute Idee
13.11.2009
Lord_Pinhead 496 5
Huh...da waren wir wohl gleichzeitig dran...Dasselbe in Grün von mir :)
DaSpors 13.11.2009
0
Vielen Dank euch beiden!
Hat wunderbar funktioniert.
13.11.2009
13thAngel 363 1 7
Schön dass du eine Antwort akzeptiert hast, aber Danksagungen bitte als Kommentar hinzufügen ;)
kirt 13.11.2009
Wir gemacht. Wobei ich gerne beide Antworten akzeptiert hätte, da beide genau das erfüllen was ich benötige. :)
13thAngel 13.11.2009

Stelle deine .net-Frage jetzt!