Я использую членство ASP.NET MVC 3 для моего сайта со значениями по умолчанию.Таким образом, пароль участника для пользователя надежно хранится.
Мой сервис требует от пользователя ввода имени пользователя / паролей для других веб-сервисов, которые они используют.Я получаю доступ к этим услугам из своего сервиса.Если я сохраняю служебные пароли пользователей, мне нужно убедиться, что эти имена пользователей / пароли также надежно хранятся, чтобы, если кто-то взломает мой сервер, они не были раскрыты.
Я понимаю общие концепции того, как это можетбыть сделано (зашифруйте имя пользователя / pw, используя хэш членства ASP.NET pw, который они предоставили в качестве ключа).Но я не знаю конкретных API или правильных шаблонов.
Я также думаю, что в принципе невозможно сделать это, потому что, если кто-то взломает мой сервис, он может просто использовать хеш для расшифровки паролей.Правильно ли я в этом.
Если я ошибаюсь, и возможно сделать то, что я хочу, предположим, что моя модель содержит что-то вроде этого:
public class MSExchangeSettings
{
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email address for your Exchange account")]
public string EmailAddress { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password for your Exchange account")]
public string Password { get; set; }
...
}
Может кто-нибудь предоставитьпример того, как это сделать правильно?
Если это невозможно, мне придется каждый раз обращаться к пользователю за PW, чего я хочу избежать.Конечно, для сервисов, которые я использую, которые поддерживают OpenID или OAuth, у меня есть другие альтернативы, но для этого конкретного примера (Exchange) мне нужно имя пользователя / pw.