Сохранение учетных данных пользователя в приложении Windows - PullRequest
8 голосов
/ 07 августа 2009

Существует ли лучший способ хранения учетных данных в приложении .NET Windows, будь то встроенный API или просто рекомендуемый алгоритм шифрования?

В том же духе, что и у черепах SVN, Spotify и Skype.

Редактировать: Я намерен использовать веб-службу, которая возвращает токен из службы аутентификации. Затем другие службы принимают этот токен в качестве параметра. Однако срок действия токена истекает через 30 минут, поэтому хранить сам токен бессмысленно для этой задачи.

Ответы [ 3 ]

14 голосов
/ 07 августа 2009

Похоже, что использование ProtectedData (которое включает API защиты данных Windows ) - моя лучшая ставка, так как он имеет возможность шифрования на основе текущего пользователя.

byte[] dataToEncrypt = new byte[] { ... };

// entropy will be combined with current user credentials
byte[] additionalEntropy = new byte { 0x1, 0x2, 0x3, 0x4 };

byte[] encryptedData = ProtectedData.Protect(
    dataToEncrypt, additionalEntropy, DataProtectionScope.CurrentUser);

byte[] decryptedData = ProtectedData.Unprotect(
    encryptedData, additionalEntropy, DataProtectionScope.CurrentUser);
0 голосов
/ 07 августа 2009

Существует множество рекомендаций паролей в MSDN. Вам нужно найти управляемую оболочку для CryptProtectData

0 голосов
/ 07 августа 2009

Рекомендуется никогда не хранить учетные данные, только токены Kerberos ... к сожалению, не каждый ресурс допускает такую ​​аутентификацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...