MVC4简单会员密码处理

时间:2013-04-27 00:07:13

标签: asp.net-mvc-4 passwords simplemembership password-encryption

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

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

2 个答案:

答案 0 :(得分: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);
    }

答案 1 :(得分:1)

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

关于哈希它正在使用PBKDF2,这意味着你不应该为此担心。