Обработка паролей MVC4 Simple Membership
Я использую SimpleMembershipProvider в своем приложении MVC4. Похоже, что такие вещи, как обеспечение сложности пароля, максимальное количество попыток входа в систему и т. Д., Не встроены в этого поставщика, как это было в поставщиках, доступных в более ранней версии платформы. Есть ли какой-нибудь способ, позволяющий справиться с этими вещами с помощью SimpleMembership, или я должен сделать это самостоятельно?
Кроме того, какой алгоритм хеширования использует поставщик SimpleMemberhip, и я должен беспокоиться, что он, кажется, не использует соль (то есть столбец соли пуст в моей таблице webpage_membership)
2 ответа
Я еще не нашел применение сложности пароля, я новичок в MVC сам. Но существует переопределение для метода Login SimpleMembership, которое указывает максимальное количество неудачных попыток и период блокировки (в секундах). Вот пример действия моего контроллера входа в систему POST, который заблокирует учетную запись после 3 попыток:
public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (WebSecurity.IsAccountLockedOut(model.UserName, 3, 300))
{
ModelState.AddModelError("", "Your account has been locked due to excessive log in failures. Please try again in 5 minutes.");
return View(model);
}
else if (WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
{
return RedirectToLocal(returnUrl);
}
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}
Я думаю, что вы можете использовать SimpleMembershipProvider(MembershipProvider)
Перегрузка конструктора для предоставления экземпляру MembershipProvider с установленными свойствами свойств требований к паролю, и затем SimpleMembershipProvider будет использовать эти значения.
Что касается хеширования, он использует PBKDF2, что означает, что вам не стоит об этом беспокоиться.