当用户在登录时单击“记住我”后重新打开页面时,更改我的ASP.net站点重定向到的页面

本文关键字:记住我 我的 ASP net 重定向 站点 新打开 登录 用户 单击 | 更新日期: 2023-09-27 18:09:51

当用户在登录时单击remember me后重新打开页面时,我该如何更改我的ASP.net站点重定向到的页面?记住我的功能工作,但用户停留在主页。我希望用户被重定向到另一个页面。

该网站是一个用c#编写的ASP.net网站,如果您需要更多信息,请评论。

    //
    // POST: /Account/Login
    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {
        if (!ModelState.IsValid)
        {
            return View(model);
        }
        // This doesn't count login failures towards account lockout
        // To enable password failures to trigger account lockout, change to shouldLockout: true
        var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
        switch (result)
        {
            case SignInStatus.Success:
                //                      return RedirectToLocal(returnUrl);
                return RedirectToAction("Index", "MainPage");
            case SignInStatus.LockedOut:
                return View("Lockout");
            case SignInStatus.RequiresVerification:
                return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                //return View(model);
                return RedirectToAction("", "");
        }
    }

这是Login方法的代码。由于某些原因,它没有到达"返回RedirectToAction"部分。我已经添加了断点和开关(结果)是"success"。

我还可以确认cookie"。aspnet . net. net"。ApplicationCookie"正在生成,因为我可以看到它在chrome调试菜单。

谢谢你的帮助!

当用户在登录时单击“记住我”后重新打开页面时,更改我的ASP.net站点重定向到的页面

添加:

private IActionResult RedirectToLocal(string returnUrl)
        {
            if (Url.IsLocalUrl(returnUrl))
            {
                return Redirect(returnUrl);
            }
            else
            {
                return RedirectToAction(nameof(HomeController.Index), "Home");
            }
        }
使用:

return RedirectToLocal(returnUrl);