当我直接转到使用[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-任何人都可以对此有所了解吗?谢谢