盘诚文摘好记性不如烂博客

[异常]A potentially dangerous Request.Path ...


ASP.net 4.0 中使用URL导向后, 我们在访问类似如下的地址时http://file.panson.cn/category/Post**/,就会报错误:

A potentially dangerous Request.Path value was detected from the client

at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()

at System.Web.HttpApplication.ValidateRequestExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()

at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

这是因为上述地址中有*这个特殊字符存在。

如果你想不让ASP.net 替你拦截这些特殊字符,你需要设置如下Web.config文件的httpRuntime节:

<httpRuntimerequestPathInvalidCharacters=""/>
注意其中的requestPathInvalidCharacters它是一个以逗号分隔的无效字符列表。不设置它时,它默认的无效字符集(以,分割)是后面7个:<,>,*,%,&,:,\

即:不设置这个属性。默认就是如下设置:

<httpRuntimerequestPathInvalidCharacters="&lt;,&gt;,*,%,:,&amp;,\"/>
如果你想这些字符全部不受限制,就应该设置requestPathInvalidCharacters="";
如果是部分字符受限制,部分字符不受限制,就需要在requestPathInvalidCharacters中设置需要受限制的字符,不受限制的不用设置。
转载:感谢您对盘诚格志博客网站的认可,以及对盘诚原创文章和文摘的青睐。若引用、转载或分享到个人网站或者朋友圈,请注明出处及作者信息,不甚感激!盘诚保留所有最终解释权。

扫一扫分享本页