在asp.net MVC中解锁用户

时间:2014-01-18 08:07:30

标签: asp.net-mvc asp.net-mvc-3 membership unlock

我想解锁用户,我的代码在这里: 我在

之前在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();中有错误表示检测到无法访问的代码

1 个答案:

答案 0 :(得分:2)

我在user.UnlockUser()中有错误;表示检测到无法访问的代码

您的代码

if (user.IsLockedOut)
{
    return RedirectToAction("LockedAccount");
    user.UnlockUser();
}

您在return之前使用了user.UnlockUser(),因此永远不会调用该函数,因此您会收到错误。

将其更改为

if (user.IsLockedOut)
{
    user.UnlockUser();
    return RedirectToAction("LockedAccount");
}