1

我在我的 MVC4 应用程序中使用 SimpleMembershipProvider。似乎强制密码复杂性、最大登录尝试次数等内容并没有内置到此提供程序中,就像它们在早期版本的框架中可用的提供程序中一样。是否有任何内置方法可以使用 SimpleMembership 处理这些事情,或者我必须自己动手。

此外,SimpleMemberhip 提供程序使用什么散列算法,我是否应该担心它似乎没有使用盐(即我的网页成员表中的盐列是空的)

4

2 回答 2

6

我还没有找到密码复杂性强制执行,我自己是 MVC 的新手。但是 SimpleMembership 的 Login 方法有一个覆盖,它指定了失败尝试的最大次数和锁定期(以秒为单位)。这是我的登录 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);
    }
于 2013-04-27T20:45:57.670 回答
1

我认为您可以使用SimpleMembershipProvider(MembershipProvider)构造函数重载来提供具有这些密码要求属性集的 MembershipProvider 实例,然后 SimpleMembershipProvider 将使用这些值。

关于它使用PBKDF2的散列,这意味着你不应该担心这一点。

于 2013-04-27T00:25:46.970 回答