Мое приложение MVC5 использует Active Directory, и я не могу использовать шифрование пароля по умолчанию, предоставленное .Net, поскольку AD его не поддерживает.
Мой контроллер:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(Account user)
{
if (ModelState.IsValid)
{
if (Membership.ValidateUser(user.UserName, user.Password))
{
var principal = user.GetUserPrincipal(user.UserName, user.Password, user.DomainName);
if (principal != null)
{
FormsAuthentication.SetAuthCookie(user.UserName, user.RememberMe);
var returnUrl = GetRedirectFromLoginUrl();
if (Url.IsLocalUrl(returnUrl))
return Redirect(returnUrl);
else
return RedirectToAction("Index", "Home");
}
else
ModelState.AddModelError("", "User Principal not created.");
}
else
{
ModelState.AddModelError("", "Login data is incorrect!");
}
}
else
ModelState.AddModelError("", "Login data is incorrect!");
return View("Login", user);
}
Логин работает нормально, но у меня проблема с безопасностью. Я вижу свое имя пользователя, пароль, домен и т. д. в виде открытого текста, когда собираю данные с помощью инструментов разработчика IE9 (экран ниже):
__RequestVerificationToken=S-DKCSoudfTYsoBh4fj...&UserName=test&Password=testpassword&DomainName=domainName
Web.Config имеет этот код:
<membership defaultProvider="ADMembership">
<providers>
<clear/>
<add name="ADMembership" type="System.Web.Security.ActiveDirectoryMembershipProvider" connectionStringName="ADConn" attributeMapUsername="sAMAccountName" />
</providers>
</membership>
Помогите пожалуйста как зашифровать или скрыть пароль.