2016-02-27 3 views
0

Я пытаюсь получить returnURL, но, вероятно, мне что-то не хватает. WebConfig является:return url is null, как его получить

<authentication mode="Forms"> 
    <forms loginUrl="~/UserAccount/Login" timeout="2880" /> 
</authentication> 
<authorization> 
    <allow users="?" /> 
</authorization> 

часть LogIn.cshtml является:

@model Models.UserModel 

@{ 
// ViewBag.Title = "Home Page"; 
} 
@using (Html.BeginForm("LogIn", "UserAccount", new { ReturnUrl = Request.QueryString["ReturnUrl"] }, FormMethod.Post)) 
{ 
    <div> 
     <table> 

и частью метода является Логин:

[HttpGet] 
    public ActionResult LogIn(string ReturnUrl) 
    { 
     ViewBag.ReturnUrl = ReturnUrl; 
     var model = new UserModel(); 
     return View(model); 
    } 


    [HttpPost] 
    public ActionResult LogIn(UserModel model, string returnUrl) 
    {    
     if (!ModelState.IsValid) 

Я думал, что это все, что я должен сделать get returnURL для метода LogIn, но он не работает. Что я делаю неправильно? Спасибо.

+0

ReturnUrl будет недействительным, так как вы косвенны на странице 'LogIn'. – romanoza

ответ

0

Я не знал, что атрибут пользовательских Авторизоваться играет жизненно важную роль в процессе, поэтому я внес изменения в:

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) 
    { 

     filterContext.Result = new System.Web.Mvc.RedirectResult("/UserAccount/LogIn/?ReturnUrl=" + filterContext.HttpContext.Request.Url.AbsolutePath); 

и теперь он работает.