Tôi đã cố gắng cấp quyền NTFS trên đường dẫn UNC cho một người dùng cụ thể, nhưng tôi thấy hành vi khác nhau tùy thuộc vào đường dẫn UNC. Dưới đây là mã (từ MSDN) mà tôi đang sử dụng để cung cấp cho phép và kết quả trong mỗi kịch bản,Quyền thừa kế bị mất khi cấp quyền NTFS
static void GiveNTFSPermissions(string folderPath,
string ntAccountName,
FileSystemRights accessRights)
{
DirectorySecurity dirSecurity = Directory.GetAccessControl(folderPath);
FileSystemAccessRule newAccessRule =
new FileSystemAccessRule(
ntAccountName,
accessRights,
AccessControlType.Allow);
dirSecurity.AddAccessRule(newAccessRule);
Directory.SetAccessControl(folderPath, dirSecurity);
}
Giả sử tôi có một phần có tên là “RootShare” trên máy tính địa phương của tôi, và một thư mục “InsideRootShare ”bên trong nó.
Scenario1: Khi tôi gọi,
GiveNTFSPermissions(@"\\sri-devpc\RootShare",
@"domain\username",
FileSystemRights.Write);
quyền thừa kế đã bị mất trên con đường chia sẻ,
Scenario2: Khi tôi gọi,
GiveNTFSPermissions(@"\\sri-devpc\RootShare\InsideRootShare",
@"domain\username",
FileSystemRights.Write);
Quyền thừa kế vẫn còn nguyên vẹn.
Tôi đã thử với các nhà thầu khác nhau của FileSystemAccessRule
nhưng không có may mắn.
Lý do đằng sau hành vi này và bất kỳ giải pháp nào cho điều này?
Bạn đã thử [hàm tạo] (http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.filesystemaccessrule.aspx) có tham số 'InheritanceFlags' làm đối số? Ngoài ra, 'AddNTFSPermission' là một tên hợp lý hơn' GiveNTFSPermissions', vì nó cố gắng * thêm * một quy tắc truy cập mới vào các quy tắc truy cập hiện có. – Nawaz
Xem chủ đề này: http://stackoverflow.com/questions/243995/setting-folder-permissions-on-vista – Nawaz
@Nawaz: Tôi đã thử tất cả các nhà xây dựng và tôi có cùng kết quả. Cảm ơn bạn đã đề xuất :) – sri