Где хранить: Информация о подключении пользователя? - PullRequest
2 голосов
/ 26 апреля 2010

;) Я пишу .NET-приложение, когда пользователь подключается к данному серверу. Вся информация в приложении хранится на сервере. Но я хочу / нужно хранить следующую информацию для пользователя:

  • Сервер, к которому он подключился в последний раз
  • Имя пользователя, которое он использовал для подключения в последний раз (и нет, пароля нет, никогда).

Есть идеи, где хранить это лучше? файл конфигурации приложения не имеет смысла (пользователь! = admin, application.config защищен от записи для него). Итак, мои варианты:

  • В реестре. 2 ключа под моим собственным подразделом.
  • В каком-то ini-файле, хранящемся в каталоге данных пользователя (AppData). Возможно, это также позволит позднее расширить (например, сохранить больше информации, часть которой может не вписаться в реестр).

Кто-нибудь совет? Другие альтернативы? До сих пор я склоняюсь к поиску каталога AppData со своей собственной подпапкой - просто потому, что это хорошая подготовка для последующего хранения, как локальной копии конфигурации и т. Д.

Ответы [ 3 ]

1 голос
/ 26 апреля 2010

Зашифруйте и сохраните его в реестре.

1 голос
/ 26 апреля 2010

Вы можете сохранить в app.config как пользовательскую настройку (поэтому они не сохраняются в app.config после их изменения, но могут быть доступны с помощью тех же API).

См. Здесь для получения дополнительной информации о области:

http://msdn.microsoft.com/en-us/library/a65txexh%28VS.80%29.aspx

0 голосов
/ 26 апреля 2010

Как сделать то, что динешрекула написал ниже:

using System.Security;
using System.Security.Cryptography;

var guid = Assembly.GetEntryAssembly().GetCustomAttributes(typeof(System.Runtime.InteropServices.GuidAttribute), false);
this.entropy = Encoding.UTF8.GetBytes((guid[0] as System.Runtime.InteropServices.GuidAttribute).Value);

private SecureString Unprotect(byte[] data)
{
    return UTF8Encoding.UTF8.GetString(ProtectedData.Unprotect(data, this.entropy, DataProtectionScope.CurrentUser)).ToSecureString();
}

private void Protect(string data)
{
    ProtectedData.Protect(UTF8Encoding.UTF8.GetBytes(data), this.entropy, DataProtectionScope.CurrentUser)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...