2011-02-10 25 views
14

Tôi đang viết ứng dụng giao diện điều khiển sẽ Sao chép tệp từ đĩa cục bộ của tôi vào máy chủ tệp. Thư mục này đang bảo vệ bằng tên người dùng và mật khẩu. Phương pháp File.Copy() không hoạt động. Nó cho phép lỗi. I have looked to this codeFile.Copy() để tập tin máy chủ với mạng Credential

Tôi đã thử nó nhưng nó không hoạt động. Đầu tiên nó được viết bằng VB nhưng tôi đã thay đổi mã thành C# nhưng có một số lỗi. Tôi không biết lỗi này có ý nghĩa gì. Có lẽ bạn có thể tư vấn cho tôi cách khác đối phó tập tin để bảo vệ File Server

với File.Copy đơn giản (bla bla) nó mang lại cho tôi "bạn chưa cho phép"

khi tôi chuyển đổi mã VB đến C# nó gived tôi lỗi dưới đây: cố gắng để đọc hay ghi bộ nhớ được bảo vệ

tôi đã tìm thấy giải pháp

You can Follow It

+4

Tôi có thể khuyên bạn nên đăng lỗi. –

+0

Thay vì "một cách khác", hãy thử làm theo cách bạn đã thử làm việc. Bạn thấy loại lỗi nào khi bạn chuyển đổi mã đó? –

+0

khi tôi chuyển đổi mã thành C# nó đã cho tôi lỗi dưới đây: Đã cố gắng đọc hoặc ghi bộ nhớ được bảo vệ. Đây thường là dấu hiệu cho thấy rằng bộ nhớ khác bị hỏng. tôi chắc chắn rằng tôi đã thay đổi nó một cách chính xác nhưng trong một dòng tôi không chắc chắn. dòng này là Dim admin_token Như IntPtr tôi đã thay đổi nó thành IntPtr admin_token = new IntPtr(); – AEMLoviji

Trả lời

18

Bạn có thể sử dụng số little impersonation class Tôi đã viết một số năm trước:

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

tôi sẽ lood mã của bạn sau này nếu mã của tôi sẽ không hoạt động :-) tôi nghĩ rằng mã của bạn là chính xác . Cảm ơn bạn đã trả lời – AEMLoviji

+1

tôi cần sự giúp đỡ của bạn. tôi có thể null cho tham số Domain không? – AEMLoviji

+0

Bạn có thể sử dụng một dấu chấm "." để chỉ ra rằng cơ sở dữ liệu tài khoản cục bộ đang được sử dụng. 'Environment.MachineName' cũng có thể làm việc, tôi đoán vậy. –

Các vấn đề liên quan