Как сохранить текстовый файл в приложении Windows Form - PullRequest
0 голосов
/ 10 сентября 2018

Я создаю приложение Windows Form. по соображениям безопасности я хочу сохранить информацию о лицензии в текстовом файле и зашифровать ее.

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" запрещен.

************** Exception Text ************** System.UnauthorizedAccessException: доступ к пути 'C: \ Program Files (x86) \ WebenixSystem \ Metro Whole Sale \ data.txt' запрещен.

Как я могу решить эту проблему и как я могу зашифровать этот текстовый файл? пожалуйста, помогите ...

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Также обратите внимание: информация о лицензии не будет передана различным пользователям. Если пользователь войдет в систему с другой учетной записью, данные лицензии не будут найдены, поскольку у каждого пользователя есть свои «MyDocuments», «AppData» и т. Д. *

0 голосов
/ 10 сентября 2018

Как показывает ошибка - у вас нет прав доступа к пути, по которому вы пытаетесь сохранить файл.
Поскольку файл будет зашифрован, вам не нужно его скрывать. Таким образом, вы можете сохранить его в папке документов учетной записи пользователя.

Использование этой строки кода вернет путь к папке «Мои документы». Там вы можете создать новую папку или сохранить файл непосредственно по этому пути.

Обратите внимание, что это относительный путь, поэтому он будет работать для всех пользователей.

String pathToDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...