我们在ASP.net 4.0 中使用URL导向后, 我们在访问类似如下的地址时 http://wz.csdn.net/yanjinde77/一个面试题!********/,就会报错误:
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的节:
<?xml version="1.0"?> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.web> <httpRuntime requestPathInvalidCharacters="" /> </system.web> </configuration>
注意其中的requestPathInvalidCharacters 它是一个以逗号分隔的无效字符列表。不设置它时,它默认的无效字符集(以,分割)是后面7个:<,>,*,%,&,:,\
即,不设置这个属性,默认就是如下设置:
<?xml version="1.0"?> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.web> <httpRuntime requestPathInvalidCharacters="<,>,*,%,:,&,\" /> </system.web> </configuration>
如果你想这些字符全部不受限制,就应该设置 requestPathInvalidCharacters="" , 如果是部分字符受限制,部分字符不受限制,就需要在 requestPathInvalidCharacters 中设置需要受限制的字符,不受限制的不用设置。
参考资料:
Experiments in Wackiness: Allowing percents, angle-brackets, and other naughty things in the ASP.NET/IIS Request URL
http://www.budoou.com/article/981320/
http://blog.joycode.com/ghj/archive/2010/06/29/116007.joy
在ASP.NET 4.0中遇到访问含有特殊字符如'*'的URL时,系统会抛出'潜在危险的Request.Path值'的错误。通过修改Web.config的requestPathInvalidCharacters配置,可以允许或限制特定字符。默认情况下,<, >, *, %, &, :, 被视为无效字符。若要解除限制,可将该属性设置为空字符串,或者仅限制部分字符。"
129558732,7516622,Unity调用安卓相机与相册实现教程,"['Unity', 'Android开发', 'C#编程', 'Java编程', '跨平台开发']

3405

被折叠的 条评论
为什么被折叠?



