在单个文件上设置安全性

本文关键字:设置 安全性 文件 单个 | 更新日期: 2023-09-27 18:11:38

我试图在单个文件上实现安全性,以防止访问文件或删除文件,下面是代码:

//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();

我已经尝试在关闭流并设置访问控制后再次打开文件,但发生了同样的问题,我也尝试过在文件流以外的正常文件上,我有一个具有所有权限的管理帐户,所以问题是什么以及如何解决它?

在单个文件上设置安全性

try this,

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);