bka*_*aid 9 asp.net-mvc asp.net-mvc-3
有没有办法阻止访问(404)MVC 3 beta 1中的Razor视图?当我创建一个全新的空白站点(IIS7),然后从浏览器访问/views/home/index.cshtml,而不是404我得到这个
[InvalidCastException: Unable to cast object of type 'ASP.Index_cshtml' to type 'System.Web.IHttpHandler'.]
System.Web.WebPages.WebPageHttpHandler.CreateFromVirtualPath(String virtualPath, VirtualPathFactoryManager virtualPathFactoryManager) +56
System.Web.WebPages.WebPageRoute.DoPostResolveRequestCache(HttpContextBase context) +253
System.Web.WebPages.WebPageHttpModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) +89
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
Run Code Online (Sandbox Code Playgroud)
默认情况下,views文件夹中的web.config文件设置为阻止所有文件请求,但显然此请求仍然可以通过.
重现的步骤:
文件 - >新项目
ASP.NET MVC 3 Web应用程序
Internet应用程序(Razor)
F5
导航到/views/home/index.cshtml
我是开发ASP.NET MVC 3和ASP.NET Web Pages以及Razor的ASP.NET团队的开发负责人.
这在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视图页面运行.
| 归档时间: |
|
| 查看次数: |
5366 次 |
| 最近记录: |