写入受保护的文件

时间:2012-10-15 07:04:01

标签: c# service

我希望写一个受保护的文本文件,注意这个内容很重要。 我可以写一个文件来保护它我将使用加密 但不希望任何人阅读该文件的内容。我试过了 使用File.WriteText?但问题是该文件随后被写入 未使用,以便任何人都可以阅读内容。

保护,例如。像SAM文件一样

2 个答案:

答案 0 :(得分:0)

在Microsoft Dotnet框架中,c#中提供的TextFile attributes将使您能够保持文件的加密和只读。可以使用FileIOPermissionAccesss完成写保护。如果当前用户是管理员,那么他将能够为特定文件提供保护和删除权限。以下是添加权限的示例代码。

var permissionSet = new PermissionSet(PermissionState.None);    
var writePermission = new FileIOPermission(FileIOPermissionAccess.Write, filename);
permissionSet.AddPermission(writePermission);

if (permissionSet.IsSubsetOf(AppDomain.CurrentDomain.PermissionSet))
{
    using (FileStream fstream = new FileStream(filename, FileMode.Create))
    using (TextWriter writer = new StreamWriter(fstream))
    {
        // try catch block for write permissions 
        writer.WriteLine("sometext");


    }
}
else
{
    //perform some recovery action here
}

答案 1 :(得分:0)

我也面临类似的问题,而在我的情况下问题是    我的文件中的数据应该对任何人都可见,甚至对管理员用户也是如此    并且每次应用程序运行时,应该是以前的数据    取而代之的是新的。

这是我的代码

    string pathfile = @"C:\Users\Public\Documents\Filepath.txt";  
  if    (File.Exists(pathfile)) 
   {

                     File.Delete(pathfile);


                 }
                 if (!File.Exists(pathfile))
                 {


                     using (FileStream fs = File.Create(pathfile))

                     {
                         Byte[] info = new UTF8Encoding(true).GetBytes("Your Text Here");

                         fs.Write(info, 0, info.Length);


                         FileSecurity fsec = File.GetAccessControl(pathfile);
                         fsec.AddAccessRule(new FileSystemAccessRule("Everyone",
                         FileSystemRights.FullControl, AccessControlType.Deny));
                         File.SetAccessControl(pathfile, fsec);

                     }


                     }