Обработка пароля простого членства в MVC4

Я использую SimpleMembershipProvider в своем приложении MVC4. Кажется, что такие вещи, как обеспечение сложности пароля, максимальное количество попыток входа в систему и тому подобное, не встроены в этот провайдер, как они были в провайдерах, доступных в более ранней версии фреймворка. Есть ли встроенный способ справиться с этими вещами с помощью SimpleMembership, или мне нужно свернуть свой собственный.

Кроме того, какой алгоритм хеширования использует провайдер SimpleMemberhip, и должен ли я беспокоиться о том, что он, похоже, не использует соль (т.е. столбец соли пуст в моей таблице webpage_membership)


person Agreene    schedule 27.04.2013    source источник


Ответы (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);
    }
person Dave    schedule 27.04.2013

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

Что касается хеширования, то используется PBKDF2, что означает, что вам не стоит об этом беспокоиться.

person Darko Kenda    schedule 27.04.2013