2011-02-10 14 views
14

Piszę aplikację konsolową, która skopiuje plik z mojego lokalnego dysku na serwer plików. Ten folder jest chroniony przez nazwę użytkownika i hasło. File.Copy() metoda nie działa. Daje błąd uprawnień. I have looked to this codeFile.Copy() do serwera plików z poświadczeniem sieciowym

Próbowałem, ale to nie działa. Najpierw został napisany w VB, ale zmieniłem kod na C#, ale są pewne błędy. Nie wiem, co oznacza ten błąd. Może ty mi doradzić inny sposób radzenia sobie plik na chronionym serwerze plików

z prostego File.Copy (bla bla) to daje mi „nie masz pozwolenia”

kiedy konwertowane kodu VB do C# to proponowały mi błąd poniżej: próba odczytu lub zapisu pamięci chronionej

znalazłem roztworowi

You can Follow It

+4

mogę doradzić aby umieścić błędy. –

+0

Zamiast "innej drogi", spróbujmy znaleźć sposób, w jaki próbujesz pracować. Jakie błędy występują podczas konwersji tego kodu? –

+0

kiedy przekonwertowałem kod na C#, który podał mi błąd poniżej: Próba odczytu lub zapisu pamięci chronionej. Często jest to wskazówką, że inna pamięć jest uszkodzona. Jestem pewien, że zmieniłem go poprawnie, ale w jednym wierszu nie jestem pewien. ta linia to Dim admin_token Jako IntPtr zmieniłem ją na IntPtr admin_token = new IntPtr(); – AEMLoviji

Odpowiedz

18

Można użyć little impersonation class napisałem kilka lat temu:

using (new Impersonator("myUsername", "myDomainname", "myPassword")) 
{ 
    // code that executes under the new context. 
    File.Copy(x, y); 
} 
+1

Połknę ci kod później, jeśli mój kod nie zadziała :-) Myślę, że twój kod jest poprawny . Dzięki za odpowiedź – AEMLoviji

+1

potrzebuję twojej pomocy. Czy mogę null null dla parametru Domain? – AEMLoviji

+0

Możesz użyć pojedynczej kropki "." aby wskazać, że używana jest baza danych kont lokalnych. "Environment.MachineName" również może działać, jak sądzę. –

Powiązane problemy