Хранение информации о лицензии
Вопрос
У меня есть сомнения в лицензировании. Я использую приложение C #. Сценарий: Пользователь получает лицензию на приложение по почте в виде файла. Он / она хранит файл лицензии на рабочем столе. Позже он / она выбирает лицензию и нажимает зарегистрироваться. Теперь приложение зарегистрировано (лицензировано). Через несколько дней, если пользователь удалит файл лицензии с рабочего стола. Приложение перестанет работать, так как нет файла. Я хочу хранить детали лицензии где-нибудь в реестре или файле (секретный путь). Но Что делать, если эта учетная запись пользователя не имеет достаточных прав для чтения / записи реестра или файла. Какой хороший способ? Ребята, вы знаете какой-нибудь другой метод? Я новичок в этой области. Поэтому, пожалуйста, помогите мне.
Заранее спасибо.
Решение
Все данные приложения должны храниться в каталоге% appdata%.
Поскольку вы указали C #, вот код для получения папки:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
Это выведет в следующее место: В XP: C: / Documents and Settings / имя пользователя / Данные приложения / В Vista: C: / Users / имя пользователя / AppData / Roaming
Я бы порекомендовал вам создать папку в этом каталоге для вашего приложения и скопировать туда.
Другие советы
Microsoft предлагает несколько вариантов расположения хранилищ в Windows Vista: документ о сертификации и совместимости приложений .
Итак, если она [ваша программа] постоянно меняет общие данные (не CODE), тогда они [данные] должны логически перейти в папку ProgramData. Если это отдельные данные, они могут перейти в профиль пользователя.
Мы используем файл лицензии и храним его в папке ProgramData \ CompanyName. Но наши лицензии для каждого компьютера, а не для пользователя. По умолчанию эта папка скрыта в Windows, но не защищена UAC.
Как кто-то сказал мне некоторое время назад: «Реестр предназначен для взаимодействия приложения с системой, а не для взаимодействия приложения с пользователем». Я не знаю, правильно ли это смотреть на вещи. Я использовал для хранения пользовательской информации в реестре тоже, но не больше. Положить настройки в файл лучше. Если вы хотите хранить такие вещи, как серийные номера, не забудьте их зашифровать.
Безусловно, в этом случае следует избегать записи в реестр, особенно если лицензию можно удалить, добавить или изменить так, как вы, похоже, описываете. Если лицензии должны быть заменены или изменены каким-либо образом после установки, возможно, лучше записать их в файл. Однако я обычно не рекомендую записывать какие-либо критические файлы или данные, подобные этим, на рабочий стол. Я бы, вероятно, записал его в папку, содержащуюся в каталоге самого приложения. Включите его в установку приложения, если это необходимо.