2008-11-05 1 views
6

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

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

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

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

ответ

3

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

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

+0

Это не мое идеальное решение, но, по-видимому, это лучший вариант. DefaultCredentials не будет работать для меня, но я буду запрашивать пароль и хранить его с помощью класса ProtectedData. благодаря – 2008-11-10 22:55:03

0

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

Смежные вопросы