![]() |
1
9
我是ASP.NET团队的开发主管,负责ASP.NET MVC 3、ASP.NET网页和Razor。 这并不是完全固定在ASP.NET MVC 3 RC中,而是完全固定在ASP.NET MVC 3 RTM中。 在ASP.NET MVC 3 RC或更早版本中不会发生“非常糟糕”的情况:最糟糕的情况是,有人可以检测到应用程序中是否存在视图,但他们 不能 让它运行(因为那个奇怪的例外)。这是一个轻微的安全问题,因为它是一种信息披露形式,但不是一个非常严重的问题。 在ASP.NET MVC 3 RTM中,~/views/中的所有Razor视图。以及MVC区域内的任何Razor视图都被100%阻止,浏览器将无法直接运行。它们只能作为MVC视图页运行。 |
![]() |
2
4
您可以在web.config中使用某种重写规则将用户从直接链接的.cshtml重定向到实际操作,或者将其重定向/重写到404页。
更新:对于马吕斯·舒尔茨来说,这是一个更为复杂的版本(他投了反对票,甚至连海道都投了404票)。这将采用类似
当然,如果没有查询字符串
(请不要因为投票不符合你的需要而投反对票,即使我是在回答别人的问题。) |
![]() |
3
3
对于从mvc3 rc迁移到rtm的那些,请确保查看\views\web.config,并添加以下配置
这将确保未找到所有视图文件(*.cshtml)返回404。 |