C# 如何在windows窗体应用程序中保存文本文件
我正在创建一个windows窗体应用程序。出于安全原因,我想将许可证信息存储到文本文件中并对其进行加密C# 如何在windows窗体应用程序中保存文本文件,c#,winforms,C#,Winforms,我正在创建一个windows窗体应用程序。出于安全原因,我想将许可证信息存储到文本文件中并对其进行加密 var serializer = new XmlSerializer(typeof(Licence)); var saveData = new Licence { ProductId = txtProductID.Text, ProductKey = txtProductKey.Text, CreatedDate = validate.CreationDate,
var serializer = new XmlSerializer(typeof(Licence));
var saveData = new Licence
{
ProductId = txtProductID.Text,
ProductKey = txtProductKey.Text,
CreatedDate = validate.CreationDate,
ExpireDate = validate.ExpireDate,
DaysLeft = validate.DaysLeft
};
using (var writeFile = File.OpenWrite("data.txt"))
{
serializer.Serialize(writeFile, saveData);
}
使用这段代码,我可以成功地创建文本文件。但是当我发布这个项目并安装它时,它给了我错误。
错误消息是
对路径“C:\Program Files(x86)\WebenixSystem\Metro Whole Sale\data.txt”的访问被拒绝
**************例外文本**************
System.UnauthorizedAccessException:对路径“C:\Program Files(x86)\WebenixSystem\Metro Whole Sale\data.txt”的访问被拒绝
如何解决此问题,以及如何加密此txt文件?请帮助…如错误所示-您没有权限访问您试图保存文件的路径。
由于文件将被加密,您不必隐藏它。因此,您可以将其保存在用户帐户的documents文件夹中 使用这行代码将返回“我的文档”文件夹的路径。您可以在其中创建新文件夹,或将文件直接保存到此路径 注意,这是一个相对路径,因此它适用于所有用户
String pathToDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
还要注意:许可证信息不会在不同用户之间共享。如果用户将使用不同的帐户登录,将找不到许可证数据,因为每个用户都有自己的“MyDocuments”、“AppData”等。将其保存在用户目录中,或要求您的应用程序使用管理员权限运行stake a look a look a look a look a look@RBK使应用程序使用管理员权限运行很少是正确的解决方案。对于像保存文件这样简单的事情来说,这完全是一种过激行为,并且会带来安全问题。这个建议就像听到了21世纪初和所有Windows xp安全地狱的回声。