Установка безопасности для одного файла? - PullRequest
4 голосов
/ 18 октября 2011

Я пытаюсь реализовать защиту для одного файла, чтобы предотвратить доступ к файлу или его удаление, вот код:

//Create file
FileStream oFileStreamDec = new FileStream(@"C:\Decrypted_AMS.cfg", FileMode.Create, FileAccess.ReadWrite, FileShare.None);
oFileStreamDec.Write(DecryptedXML, 0, DecryptedXML.Length);
//Create access rules
FileSystemAccessRule oAccessRuleFullControl = new FileSystemAccessRule(WindowsIdentity.GetCurrent().Name, FileSystemRights.FullControl, AccessControlType.Allow);
//Create file security and apply rules to it
FileSecurity oFileSecurity = new FileSecurity(@"C:\Decrypted_AMS.cfg", AccessControlSections.All);
oFileSecurity.AddAccessRule(oAccessRuleFullControl);
//Here is the problem !!!!!!!
oFileStreamDec.SetAccessControl(oFileSecurity);
oFileStreamDec.Close();

Я попытался снова открыть файл после закрытия потока и настройки контроля доступа, но возникла та же проблема, я пробовал также его на обычном файле, отличном от потока файлов, и тоже самое, у меня есть учетная запись администратора все разрешения, так что в чем проблема и как ее решить?

1 Ответ

7 голосов
/ 18 октября 2011

попробуйте это,

FileStream oFileStreamDec = new FileStream(@"C:\Decrypted_AMS.cfg", FileMode.Create, FileAccess.ReadWrite, FileShare.None);
oFileStreamDec.Write(DecryptedXML, 0, DecryptedXML.Length);
// Close the File first
oFileStreamDec.Close();
//Create file security and apply rules to it
FileSecurity oFileSecurity = new FileSecurity();
oFileSecurity.AddAccessRule(new System.Security.AccessControl.FileSystemAccessRule("Everyone", System.Security.AccessControl.FileSystemRights.FullControl, System.Security.AccessControl.AccessControlType.Allow));
System.IO.File.SetAccessControl(@"C:\Decrypted_AMS.cfg", oFileSecurity);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...