asp.net-mvc – ASP.NET MVC 3 Beta 1 Block访问Razor视图

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – ASP.NET MVC 3 Beta 1 Block访问Razor视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法阻止访问(404)到MVC 3 beta 1中的剃刀视图?当我创建一个全新的空白站点(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

默认情况下,views文件夹中的web.config文件被设置为阻止所有文件请求,但显然这个请求仍然在通过.

复制步骤:
文件 – >新项目
ASP.NET MVC 3 Web应用程序
互联网应用(剃须刀)
F5
导航到/views/home/index.cshtml

解决方法

我是ASP.NET团队的开发人员,负责ASP.NET MVC 3和ASP.NET Web Pages和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视图页面运行.

猜你在找的asp.Net相关文章