2015-08-26 2 views
0

Как я могу изменить страницу, на которую перенаправляется мой сайт ASP.net, когда пользователь снова открывает страницу после нажатия помните меня при входе в систему. Функция «запомнить меня» работает, но пользователь остается на домашней странице. Я хотел бы, чтобы пользователь был перенаправлен на другую страницу.Изменение страницы, на которой мой сайт ASP.net перенаправляется, когда пользователь снова открывает страницу после нажатия на кнопку «запомнить меня при входе»

Сайт сайта ASP.net, написанный на C#, прокомментируйте, если вам нужна дополнительная информация.

// 
    // 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("", ""); 
     } 
    } 

Это код метода "Вход". По какой-то причине он не достигает раздела «return RedirectToAction». Я добавил точки останова, и переключатель (результат) - это «успех».

Я также могу подтвердить, что файл cookie «.ASPnet.ApplicationCookie» генерируется, поскольку я вижу его в меню отладки хрома.

Большое спасибо за вашу помощь!

ответ

0

Добавить:

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

Использование:

return RedirectToLocal(returnUrl);