2011-09-16 31 views
7

Tôi muốn đặt tệp có thể ghi bởi tất cả người dùng.Làm cách nào để tôi có thể đặt một tệp có thể ghi bởi tất cả người dùng?

FileSecurity sec = File.GetAccessControl(fileName); 

string users = ?????; 
sec.AddAccessRule(new FileSystemAccessRule(
     users, 
     FileSystemRights.Write, 
     AccessControlType.Allow)); 

File.SetAccessControl(fileName, sec); 

Vấn đề là tôi không biết sử dụng chuỗi nào. Tôi đã thử users = WindowsAccountType.Normal.ToString(), nhưng điều đó chỉ cho phép "Normal" không hoạt động. Làm cách nào tôi có thể nhận được chuỗi chỉ định nhóm của tất cả người dùng trên máy?

Trả lời

7

Tôi giả sử bạn đang tìm kiếm nhóm "Mọi người" mà tất cả người dùng đã đăng nhập thuộc về. Tuy nhiên bằng cách sử dụng chuỗi "Mọi người" sẽ giúp bạn có được vào rắc rối nghiêm trọng trên hệ thống không phải tiếng Anh

Một giải pháp tốt hơn là sử dụng nó thông qua SecurityIdentifier WellKnownSidType.WorldSid:

SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null); 

Các giải pháp hoàn chỉnh đã được mô tả trong câu trả lời này: Add "Everyone" privilege to folder using C#.NET

4

thử "Mọi người" mà là một tài khoản hệ thống được xác định trên mỗi máy hoặc thậm chí trên các miền AD nếu có (DOMAIN \ mọi người trong trường hợp đó)

+0

"Mọi người" chỉ hoạt động trên các hệ thống tiếng Anh. – Robert

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