Zugriff auf Netzwerkfreigabe über Process.Start (Pfad) -Netzwerk Credential unter Verwendung von

StackOverflow https://stackoverflow.com/questions/4132035

Frage

dieser Impersonator Klasse ein Domänenkontos für den Zugriff eines zum Imitieren Netzwerkfreigabe wie folgt:

using(new Impersonartor(username, domain, password))
{
//Code Here
}

Kopieren Sie die Datei von der Netzwerkfreigabe funktioniert in Ordnung:

using(new Impersonartor(username, domain, password))
{
 CopyAll(uncPath, localPath)
}

Allerdings Process.Start mit der UNC-Freigabe in Explorer anzuzeigen wirft eine „Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort“:

using(new Impersonartor(username, domain, password))
{
 Process.Start(uncPath)
}

Verdacht besteht, dass die Impersonator Klasse fehlerhaft ist, habe ich versucht, manuell die Anmeldeinformationen an Process Versorgung etwa so:

                        System.Diagnostics.ProcessStartInfo viewDir = new System.Diagnostics.ProcessStartInfo(uncPath);
                        viewDir.UseShellExecute = false;
                        viewDir.Domain = netCred.Domain;
                        viewDir.UserName = netCred.UserName;
                        viewDir.Password = ConvertToSecureString(netCred.Password);
                        System.Diagnostics.Process.Start(viewDir);

Noch keine Freude. Beachten Sie, dass ich bin sicher, dass mein netCred (NetworkCredential) korrekt ist, wie ich vor Verbindungen zu authentifizierte Ressourcen habe zu verwenden.

Also, wie kann ich einen UNC-Pfad im Explorer ein Netzwerk Berechtigungsnachweis mit?

War es hilfreich?

Lösung

Ich hatte das gleiche Problem heute und hier ist das, was für mich gearbeitet:

private void OpenNetworkPath(string uncPath)
{
   System.Diagnostics.Process.Start("explorer.exe", uncPath);
}

Andere Tipps

Statt die uncPath zum Process.Start zugeben, versuchen Sie "Explorer" in Process.Start beginnt und die uncPath als ProcessStartInfo der Arguments Eigenschaft übergeben.

System.Diagnostics.ProcessStartInfo viewDir = new System.Diagnostics.ProcessStartInfo("explorer.exe");
viewDir.UseShellExecute = false;
viewDir.Domain = netCred.Domain;
viewDir.UserName = netCred.UserName;
viewDir.Password = ConvertToSecureString(netCred.Password);
viewDir.Arguments = uncPath;
System.Diagnostics.Process.Start(viewDir);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top