附加RedirectUrl后的表单身份验证404

时间:2020-05-10 20:56:41

标签: c# .net asp.net-mvc model-view-controller forms-authentication

当我直接转到使用[Authorize]属性的视图时(未经身份验证),我将重定向到/Home/Login?ReturnUrl=%2fDemo%2fMember,这会产生404错误。

当我删除附加的?ReturnUrl...时,它会找到控制器方法并提供页面。

这是我的控制者:

    public ActionResult Login()
    {
        return View();
    }

好的,没问题,视图现在需要一个字符串ReturnUrl参数,让我添加它。我的HomeController登录视图现在显示为:

    public ActionResult Login(string ReturnUrl = "")
    {
        // breakpoint here
        return View();
    }

我仍然收到404。 再次,我可以删除附加的?ReturnUrl...,它仍然会找到控制器方法,并提供页面和ReturnUrl = null

我的RouteConfig包含以下内容:

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

我的web.config包含以下内容:

<authentication mode="Forms">
  <forms loginUrl="Home/Login"></forms>
</authentication>

我认为当用户处于未经身份验证的状态时,表单身份验证会根据请求的页面添加重定向,但是我不知道为什么控制器动作提供了404-任何人都可以对此有所了解吗?谢谢

0 个答案:

没有答案