Sprache: C#
[u]Usings[/u]
using System.Diagnostics;
[u]Erklärung[/u]
Mit Hilfe dieses Snippets können Sie ganz leich Netzlaufwerke verbinden und trennen,
auch wenn diese ein Passwort zur Auth. brauchen. (z.B. FTP oder WebDAV)
[u]Syntax[/u]
//Nur den Laufwerksbuchstaben angeben und fertig
MapNetworkDriveDisconnect("L:");
//Bei einer Verbindung die einen Username und PW braucht
MapNetworkDriveConnect("N:", "https://webdav.myserver.ms", "user", "pw");
//Bei einer nicht passwort geschützten Verbindung
MapNetworkDriveConnect("N:", "\serverfreigabe", string.Empty, string.Empty);
[b]Alternativ kann auch diese Funktion benutzt werden:[/b]
[u]http://msdn.microsoft.com/en-us/library/aa385413(VS.85).aspx[/u]
/// <summary>
/// Disconnects a network drive
/// </summary>
/// <param name="drive">Drive (z.B. L:)</param>
private void MapNetworkDriveDisconnect(string drive)
{
Process p = new Process();
p.StartInfo.FileName = "net";
p.StartInfo.Arguments = string.Format("use {0} /DELETE", drive);
p.StartInfo.UseShellExecute = false;
p.Start();
}
/// <summary>
/// Connects a network drive
/// </summary>
/// <param name="drive">The drive letter (e.g. L:)</param>
/// <param name="server">The UNC path to the remote drive (e.g. \MyServerMyPrinter)</param>
/// <param name="user">The User</param>
/// <param name="password">The Password Used For Login</param>
private void MapNetworkDriveConnect(string drive, string server, string user, string password)
{
Process p = new Process();
p.StartInfo.FileName = "net";
p.StartInfo.Arguments = string.Format("use {0} {1} /user:{2} {3}", drive, server, user, password);
p.StartInfo.UseShellExecute = false;
p.Start();
}
/// <summary>
/// Disconnects a network drive
/// </summary>
/// <param name="drive">Drive (z.B. L:)</param>
private void MapNetworkDriveDisconnect(string drive)
{
Process p = new Process();
p.StartInfo.FileName = "net";
p.StartInfo.Arguments = string.Format("use {0} /DELETE", drive);
p.StartInfo.UseShellExecute = false;
p.Start();
}
/// <summary>
/// Connects a network drive
/// </summary>
/// <param name="drive">The drive letter (e.g. L:)</param>
/// <param name="server">The UNC path to the remote drive (e.g. \MyServerMyPrinter)</param>
/// <param name="user">The User</param>
/// <param name="password">The Password Used For Login</param>
private void MapNetworkDriveConnect(string drive, string server, string user, string password)
{
Process p = new Process();
p.StartInfo.FileName = "net";
p.StartInfo.Arguments = string.Format("use {0} {1} /user:{2} {3}", drive, server, user, password);
p.StartInfo.UseShellExecute = false;
p.Start();
}
Alte URL:
/snippet/netzlaufwerke-verbinden-trennen-mit-user-u-passwort/1429
ich habe mit der Win32API-Funktion WNetAddConnection2 bessere Erfahrungen gemacht, da bei der das Einbinden der Netzlaufwerke schneller vonstatten ging.
Hab mal n Verweis auf die MSDN – Seite reingepackt.
😉
Wobei ich diese Methode um einiges leichter finde. 😛
Wäre es möglich diese Methode irgendwie auch zu verwenden, wenn zwischen dem Netzlaufwerk auf dem die Webanwendung installiert ist und einem Fileserver eine Firewall steht?