0
Я использую ASP.NET MVC, на мой логин действия я делаю:Не могу объяснить, почему не перенаправление после авторизации с помощью RedirectFromLogin
[AcceptVerbs("POST")]
public ActionResult Login(FormCollection form)
{
User validatedUser = // tests username/pwd here.
FormsAuthentication.RedirectFromLoginPage(
validatedUser.ID.ToString(), rememberMe);
if(String.IsNullOrEmpty(Request["ReturnUrl"]))
string redirectUrl = Request["ReturnUrl"];
if (!String.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
string redirectUrl = Request["ReturnUrl"];
}
Мой URL выглядит следующим образом, когда я нахожусь на странице входа в систему:
http://localhost:56112/user/login?ReturnUrl=/admin/settings
Неверное изображение здесь?
Мой web.config:
<authentication mode="Forms">
<forms loginUrl="/user/login"
protection="All"
timeout="30"
name="SomeCookie"
requireSSL="false"
slidingExpiration="true"
defaultUrl="default.aspx" />
Почему вы предлагаете против этого? (curiuos) – Blankman
Поскольку рекомендуемый способ выполнить перенаправление в приложении ASP.NET MVC - это вернуть правильный ActionResult из действия. 'RedirectFromLoginPage' близок к невозможности модульного теста. –
Вышеупомянутое решение работает, но зачем даже вызывать FormsAuthentication.DefaultUrl. Почему бы просто не перенаправить контроллер и действия прямо из вашего кода. «RedirectToAction» - лучшее решение. –