我希望写入受保护的文本文件请注意此内容非常重要。 我可以写入文件以保护它,我将使用加密 ,但不希望任何人阅读文件的内容。我试图用 使用File.WriteText?但问题是该文件被写入,然后 未使用,因此任何人都可以阅读该内容。写入受保护的文件
保护例如。像SAM文件
我希望写入受保护的文本文件请注意此内容非常重要。 我可以写入文件以保护它,我将使用加密 ,但不希望任何人阅读文件的内容。我试图用 使用File.WriteText?但问题是该文件被写入,然后 未使用,因此任何人都可以阅读该内容。写入受保护的文件
保护例如。像SAM文件
在Microsoft Dotnet框架中,TextFile attributes在c#中可用,可让您保持文件的加密和只读。写保护可以使用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
}
我也遇到过类似的问题,而不是在我的情况下,问题是在我的文件中 数据应该是所有人都能看到甚至admin用户, 并为每个应用程序运行时以前的数据应该是 被新的替换。
这里是我的代码
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);
}
}
你需要弄清楚你的“保护”的意思。更新你的问题,说出谁应该和谁不应该能够读取你的文件。 –
您的意思是指定文件的权限,或者只是没有人能够从资源管理器打开文件,只有您的程序可以读取它? – Abbas
嗨伙伴我的意思是所以只有我可以读它谢谢:> –