对于MVC,ReturnUrl = Default.aspx?

时间:2010-04-21 17:48:25

标签: asp.net-mvc authentication returnurl

我正在尝试保护我的整个MVC网站,因此在Home控制器之前,我添加了[Authorize]属性。

现在,如果您从Visual Studio运行它或使用根URL(例如http://localhost:2897)进行导航,它会按预期重定向到登录页面。但是,重定向后地址栏中的URL如下所示:http://localhost:2897/Account/LogOn?ReturnUrl=%2fdefault.aspx%3f

我没有对此进行测试,因为我没有实现我的身份验证代码。但是,这对我来说似乎是个大问题,因为我的项目中没有default.aspx!

web.config中的我的身份验证标记如下所示:

<authentication mode="Forms">
   <forms loginUrl="~/Account/LogOn" defaultUrl="~/Home/Index" timeout="2880"/>
</authentication>

为什么不将此路由选为默认的ReturnUrl而不是default.aspx?

1 个答案:

答案 0 :(得分:2)

当存在FormsAuthentication.RedirectFromLoginPage参数时,ASP.NET(确切地说,defaultUrl)始终忽略web.config中的ReturnUrl设置。只有在没有传递任何ReturnUrl参数的情况下直接进入登录页面时才会受到尊重。

ASP.NET MVC项目模板提供了一个空白Default.aspx模板来处理IIS Classic管道模式中的请求。你应该没问题。