Feedback

Netzlaufwerke verbinden/trennen – (mit User u. Passwort)

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();
        }

4 Kommentare

  1. ich habe mit der Win32API-Funktion WNetAddConnection2 bessere Erfahrungen gemacht, da bei der das Einbinden der Netzlaufwerke schneller vonstatten ging.

  2. 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?