我正在尝试保护我的整个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?
答案 0 :(得分:2)
当存在FormsAuthentication.RedirectFromLoginPage
参数时,ASP.NET(确切地说,defaultUrl
)始终忽略web.config
中的ReturnUrl
设置。只有在没有传递任何ReturnUrl
参数的情况下直接进入登录页面时才会受到尊重。
ASP.NET MVC项目模板提供了一个空白Default.aspx
模板来处理IIS Classic管道模式中的请求。你应该没问题。