Каков наилучший механизм хранения настроек аутентификации в приложении WinForms? - PullRequest
6 голосов
/ 05 ноября 2008

У меня есть приложение, которое будет отправлять аутентифицированные электронные письма, используя System.Net.Mail и System.Net.NetworkCredential. Мой вопрос: как мне сохранить пароль, необходимый для создания объекта NetworkCrednetial?

Приложение не имеет логина, но я мог бы установить опцию, которая позволяет пользователю вводить свои учетные данные электронной почты (почти во всех случаях это будет их вход в Windows). Я не могу использовать Active Directory, потому что не каждый клиент использует его.

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

Я предпочитаю избегать необходимости что-либо хранить, так что, в любом случае, я могу обойтись без необходимости хранить учетные данные самостоятельно, возможно, я смогу получить их из текущего логина или из другого места?

Ответы [ 2 ]

3 голосов
/ 05 ноября 2008

Для сохранения имени пользователя и пароля (в Windows) используйте DPAPI . .Net интерфейсом к нему являются классы ProtectedData и ProtectedMemory.

Но сначала вы можете попробовать, если UseDefaultCredentials или DefaultNetworkCredentials работает для вашей среды.

0 голосов
/ 05 ноября 2008

Вы также можете использовать пользовательский интерфейс Win32 Credentials - существует ряд примеров для использования этого из .NET, включая этот на MSDN .

...