2015-08-26 19 views
0

如何在用戶點擊後重新打開頁面時更改ASP.net站點重定向到的頁面在登錄時記住我。記住我的功能,但用戶停留在主頁上。我希望用戶被重定向到另一個頁面。當用戶在登錄時點擊記住我之後重新打開頁面時,更改我的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("", ""); 
     } 
    } 

這是「登錄」方法的代碼。由於某些原因,它未達到「返回RedirectToAction」部分。我添加了斷點,開關(結果)是「成功」。

我也可以確認cookie「.ASPnet.ApplicationCookie」正在生成,因爲我可以在chrome調試菜單中看到它。

很多感謝您的幫助!

回答

0

地址:

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

使用:

return RedirectToLocal(returnUrl); 
相關問題