Asp.net MVC 4授权登录重定向302缺少ReturnUrl

时间:2017-06-07 15:56:24

标签: asp.net-mvc authentication

当导航到http://localhost:62030/Home/About并且Home控制器包含[Authorize]属性时,应用正确地将302重定向返回到http://localhost:62030/Account/Login但没有ReturnUrl而不是http://localhost:62030/Account/Login?ReturnUrl=%2FHome%2FAbout 这似乎是最近开始的,但我并不知道原因。在创建新的mvc项目时,重定向会正确返回重定向以及ReturnUrl。 ReturnUrl去了哪里?

3 个答案:

答案 0 :(得分:0)

您应该确定在控制器中使用ReturnUrl并查看

Html.BeginForm("YourLogin", "Account", new {ReturnUrl = Request.QueryString["ReturnUrl"] })


[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult YourLogin(LoginInputModel model, string ReturnUrl) {
...
}

答案 1 :(得分:0)

设置表单身份验证,因为ASP.NET MVC模板正在使用Forms身份验证。

<authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="2880" />
    </authentication>

您还可以参考链接:Return URL

答案 2 :(得分:0)

由于授权过滤器的工作方式([授权]用作过滤器)

Filter Layer

你永远不会在HomeController中收到请求。

要使用[授权],您可能正在使用身份验证/授权中间件。

您应该在web.config中正确定义LoginPath。