我想解锁用户,我的代码在这里: 我在
之前在web.config中设置了maxInvalidPasswordAttempts[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
MembershipUser user = Membership.GetUser(model.UserName);
if (user.IsLockedOut)
{
return RedirectToAction("LockedAccount");
user.UnlockUser();
}
else
{
if (Membership.ValidateUser(model.UserName, model.Password))
{
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
我在user.UnlockUser();中有错误表示检测到无法访问的代码
答案 0 :(得分:2)
我在user.UnlockUser()中有错误;表示检测到无法访问的代码
您的代码
if (user.IsLockedOut)
{
return RedirectToAction("LockedAccount");
user.UnlockUser();
}
您在return
之前使用了user.UnlockUser()
,因此永远不会调用该函数,因此您会收到错误。
将其更改为
if (user.IsLockedOut)
{
user.UnlockUser();
return RedirectToAction("LockedAccount");
}