我在我的 MVC4 应用程序中使用 SimpleMembershipProvider。似乎强制密码复杂性、最大登录尝试次数等内容并没有内置到此提供程序中,就像它们在早期版本的框架中可用的提供程序中一样。是否有任何内置方法可以使用 SimpleMembership 处理这些事情,或者我必须自己动手。
此外,SimpleMemberhip 提供程序使用什么散列算法,我是否应该担心它似乎没有使用盐(即我的网页成员表中的盐列是空的)
我在我的 MVC4 应用程序中使用 SimpleMembershipProvider。似乎强制密码复杂性、最大登录尝试次数等内容并没有内置到此提供程序中,就像它们在早期版本的框架中可用的提供程序中一样。是否有任何内置方法可以使用 SimpleMembership 处理这些事情,或者我必须自己动手。
此外,SimpleMemberhip 提供程序使用什么散列算法,我是否应该担心它似乎没有使用盐(即我的网页成员表中的盐列是空的)
我还没有找到密码复杂性强制执行,我自己是 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);
}
我认为您可以使用SimpleMembershipProvider(MembershipProvider)
构造函数重载来提供具有这些密码要求属性集的 MembershipProvider 实例,然后 SimpleMembershipProvider 将使用这些值。
关于它使用PBKDF2的散列,这意味着你不应该担心这一点。