Vì vậy, tôi có một ứng dụng C# nhỏ cần kiểm tra định kỳ nội dung của các thư mục trên nhiều máy trên mạng. Tôi nghĩ rằng tôi chỉ có thể đọc \ hostname \ C $ như một đường dẫn thư mục, nhưng với các lớp Directory bình thường có vẻ không phải là một cách để xác thực đối với các máy chủ khác để bạn có thể truy cập vào chia sẻ ẩn. Tôi chắc chắn có một cách dễ dàng để làm điều này mà tôi đã bỏ qua, nhưng tại thời điểm này tôi là một chút stumpted.Đọc chia sẻ ẩn trong C#
Trả lời
Từ http://bytes.com/forum/thread689145.html:
Tất cả quá trình chạy trong bối cảnh của một tài khoản người dùng đã đăng nhập trong . Nếu bạn muốn mở tệp trên máy tính khác, ứng dụng của bạn phải đang chạy trong ngữ cảnh của người dùng có quyền để mở tệp trên máy đó. Bạn có thể làm điều này với Mạo danh.
Cách dễ nhất có vẻ là cung cấp cho người dùng hiện tại quyền thích hợp trên các máy khác.
Đây là cách tiếp cận tốt nhất là tốt, vì nó sẽ loại bỏ sự cần thiết phải đối phó với xác thực trong phần mềm của bạn (đó là dễ dàng để có được sai). – Luke
Bạn đang tìm cách thiết lập người dùng hiện tại vào thời gian chạy?
Nếu không, miễn là người dùng chạy quá trình này có quyền truy cập vào những máy móc, điều này sẽ làm việc cho bạn:
DirectoryInfo di = new DirectoryInfo(@"\\machineName\c$\temp");
FileInfo[] files = di.GetFiles();
foreach (FileInfo f in files)
{
Debug.WriteLine(f.Name);
}
Để xác thực với thị phần mà người dùng chạy quá trình này không được phép (mà thường là trường hợp đối với cổ phiếu hành chính), hãy thử chạy lệnh net Use:
net use SERVERNAME\IPC$ /user:USERNAME PASSWORD
thử chạy này trong một quá trình riêng biệt trước khi mã mà thực sự cố gắng để truy cập vào phần, ví dụ:
0.123.ProcessStartInfo psi = new ProcessStartInfo(
"net", "use " + SERVERNAME + @"\IPC$ /user:" + USERNAME + " " + PASSWORD);
Process p = new Process();
p.StartInfo = psi;
p.Start();
p.WaitForExit();
p.Close();
// The code to access the share follows...
Điều này hữu ích nếu không thích hợp để cấp quyền chia sẻ cho tài khoản người dùng đang chạy quy trình, ví dụ: đối với một mô hình bảo mật nơi ứng dụng người dùng cuối cần truy cập dữ liệu trên một phần mà người dùng đó không nên có quyền truy cập trực tiếp.
- 1. C++ threadpool với bộ nhớ chỉ đọc được chia sẻ
- 2. Chia sẻ sai trong C++
- 3. Bộ nhớ chia sẻ php đọc tất cả 0s
- 4. C - fork() và chia sẻ bộ nhớ
- 5. Thư viện được chia sẻ Linux C++
- 6. Chia sẻ lại các trường thay đổi thành chỉ đọc
- 7. Chia sẻ enum từ C#, C++/CLI và C++
- 8. Đọc dữ liệu được chia sẻ bên trong bộ xử lý tín hiệu
- 9. Các đối tượng instantiating trong bộ nhớ chia sẻ C++
- 10. Biến vectơ chia sẻ Trong số nhiều tệp C++
- 11. Thư viện bộ nhớ chia sẻ phân tán cho C++?
- 12. Ví dụ chia sẻ RSpec không được chia sẻ
- 13. Thư viện được chia sẻ C++ được gọi từ C
- 14. Bật Bộ đệm ẩn được chia sẻ trong sqlite bằng cách sử dụng PHP PDO
- 15. Chia sẻ ComboBox DataSource
- 16. Tạo cả thư viện C++ tĩnh và chia sẻ
- 17. chia sẻ cài đặt chia sẻ lại & stylecop với nhóm trong giải pháp
- 18. Ẩn tệp sqlite dữ liệu lõi khi chia sẻ tệp iTunes được bật
- 19. Chia sẻ Cache ASP.Net
- 20. Chia sẻ Memcache
- 21. Chia sẻ qua WhatsApp
- 22. LoadControl trong chức năng tĩnh/chia sẻ
- 23. SqlConnection được chia sẻ
- 24. Ẩn (các) biểu tượng trong đối tượng được chia sẻ từ LD
- 25. Ẩn mẫu thuyết minh trong thư viện chia sẻ tạo với g ++
- 26. biến chia sẻ giữa hai luồng hoạt động khác với thuộc tính được chia sẻ
- 27. C++: OpenMP chia sẻ bảo vệ bộ nhớ
- 28. Đơn giản C# Ứng dụng chia sẻ màn hình
- 29. Được chia sẻ ở đâu?
- 30. Cách chia sẻ biến trong thư viện đối tượng được chia sẻ
Điều này sẽ hiệu quả. Ngoại lệ bạn đang nhận được là gì? –