場景:
當URL中存在“<,>,*,%,&,:,/”特殊字符時,頁面會拋出A potentially dangerous Request.Path value was detected from the client異常。
原因:
是ASP.NET默認的攔截機制,保證頁面URL傳輸的一定安全性。
解決方案有兩種:
第一種,直接去除頁面請求危險字符驗證:
在web.config配置文件的<system.web>節點下添加代碼如下:
1 <system.web> 2 <httpRuntime requestValidationMode="2.0"/> 3 <pages validateRequest="false" clientIDMode="AutoID"/> 4 </system.web>
第二種,設置哪些危險字符需要被驗證:
1 <system.web> 2 <httpRuntime requestPathInvalidCharacters="<,>,*,%,:,&,/" /> 3 </system.web>
注意其中的requestPathInvalidCharacters是一個以逗號分隔的無效字符列表。默認不存在此鍵值對時,意味着受限制的無效字符集(以,分割)是這7個:<,>,*,%,&,:,/
如果你想這些字符全部不受限制,就應該設置requestPathInvalidCharacters="";
如果你想部分字符受限制,就需要在requestPathInvalidCharacters中設置需要受限制的字符;例如:requestPathInvalidCharacters="<,>"。