Getagged : Zugriff

Authentifizierung an Netzwerkfreigaben via C#

Eine Mail erreichte mich heute, in der ich gefragt wurde, wie man zB. mein Programm easyLiveSync, oder eigene Implementierungen dazu bewegen könnte, auf Netzlaufwerke bzw. Freigaben zuzugreifen, bei denen sich explizit angemeldet werden muss. Ursache aus der Mail war, dass die Synchronisierung von bzw. auf Netzlaufwerke geschehen sollte, diese aber des Öfteren im Explorer als “Getrennt” angezeigt werden, obwohl ein Doppelklick darauf die Verbindung aufbaut. Ebenso, wenn das Laufwerk getrennt ist, wird aus anderen Programmen heraus der Zugriff verweigert.

Ich bin ein Freund von Boardmitteln, wo sie denn sinnvoll und zeiteinsparend sind. Und unter C# und Co. kann man auch die Boardmittel nutzen, um zumindest vorerst eine Verbindung unter Nutzung von Nutzer und Passwort auf eine Freigabe zu erreichen.

Der Befehl unter Windows lautet: net use SERVERNAME\IPC$ /user:USERNAME PASSWORD. Alternativ kann man auch die Freigabe vorher auf ein Laufwerksbuchstaben mappen mittels: net use FreierLaufWerksbuchstabe\\SERVERNAME\FREIGABE /user:USERNAME PASSWORD. Danach kann man über den neu belegten Laufwerksbuchstaben auf die entfernten Daten zugreifen.

Will man dies nun via C# realisieren, existieren zwar einige Boardmittel, aber mittels eines Sechszeilers geht das Ganze recht einfach von der Hand. Folgender Quellcode-Ausschnitt zeigt dies auf:

ProcessStartInfo psi = new ProcessStartInfo(“net”,”use “ + SERVERNAME + @”\IPC$ /user:” + USERNAME + ” ” + PASSWORD);
Process proc = new Process();
proc.StartInfo = psi; proc.Start();
proc.WaitForExit();
proc.Close();

SERVERNAME, USERNAME und PASSWORD sind in diesem Fall Variablen des Typs string. Danach kann man problemlos den Zugriff via UNC auf die Freigabe des Server realisieren und seine “Dummheiten” mit anstellen. Ebenso ist durch Abänderung der ersten Quellcode-Zeile die Anbindung auf ein Laufwerksbuchstaben möglich:

ProcessStartInfo psi = new ProcessStartInfo(“net“,“use Laufwerk: \\\\“ + SERVERNAME + @“\Freigabe /user:” + USERNAME + ” “ + PASSWORD);

Der Rest sollte dann nach Schema F ablaufen.

 

Tipp: NTFS schreiben unter OS X

Wer wie ich hin und wieder auf NTFS-partitionierte Laufwerke zugreifen muss, hatte unter Mac OS X die Qual der Wahl. Entweder musste ein paralleles Windows-System mittels Bootcamp eingerichtet oder eine Software, welche den Zugriff auf NTFS ermöglicht, käuflich erworben werden oder gar nicht erst mit NTFS anfangen und auf FAT32 umsteigen. Nur hat eben FAT32 einige Probleme bezüglich der maximalen Dateigröße, weswegen es nicht sinnvoll war, an dessen Einsatz überhaupt zu denken. 

Ich bin vor Wochen rein zufällig, da ich Bekannten etwas auf eine NTFS-formatierte Festplatte kopieren sollte, über eine Möglichkeit gestoßen unter Mac OS X auf NTFS-Datenträger zuzugreifen – vorausgesetzt, es handelt sich um USB Datenträger. Die Software der Wahl heißt hier VMWare Fusion. Es ist gut möglich, dass dies auch mit VirtualBox funktioniert – probiert habe ich es aber noch nicht.

Weiter lesen …

Lösung: Wie man sich unbeabsichtigt aussperrt …

Viele Geräte, vornehmlich Notebooks, besitzen seitens des BIOS die Funktion, den Festplattenzugriff/Festplattenschutz (Bootvorgang) mit einem Passwort zu versehen. Ebenso, wie bereits bekannt, ist auch die Absicherung des BIOS selbst möglich.

Das Fatale daran ist die teilweise mangelhafte Unterstützung von eingebbaren Zeichen bzw. deren Auswertung beim Festlegen bzw. Abfragen des Passwortes.

Angenommen, jemand schaltet einen derartigen Schutz ein und hinterlegt das Kennwort abc123abc? wird dieses bei Eingabe während des Startvorganges nicht akzeptiert. Der Grund liegt entweder darin, dass während der Festlegung im BIOS bestimmte Sonderzeichen (zum Beispiel !, ?, §, $, &) oder bei Eingabe vor dem Start diese einfach ausgeblendet werden. Dies hat zur Folge, dass man sich unendlich bemüht sein System zu starten, tausendfach die Eingabe des Kennwortes mit der Niederschrift vergleicht und nicht mehr weiter weiß – und auch nicht mehr an die Daten kommt.

Im obigen Falle gebe man einfach abc123abc ein und das Notebook startet. Wieso? Fehler im BIOS? Fehler bei der Auswertung? Keine Ahnung, aber es hatte geholfen, nachdem ich vom eigentlichen Kennwort Kenntnis bekam …