加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何阻止IIS解码URL

发布时间:2020-12-16 07:01:08 所属栏目:asp.Net 来源:网络整理
导读:参见英文答案 What decodes my encoded hash symbol(%23)?????????????????????????????????????2个 我使用的是Windows 7,IIS 7.5,.NET 4.5. (对于Windows 8,IIS 8.5,.NET 4.5,这是有效的). 使用URL执行GET请求: http://my.host/api1/MyEntity('%2311282')
参见英文答案 > What decodes my encoded hash symbol(%23)?????????????????????????????????????2个
我使用的是Windows 7,IIS 7.5,.NET 4.5.
(对于Windows 8,IIS 8.5,.NET 4.5,这是有效的).

使用URL执行GET请求:

http://my.host/api1/MyEntity('%2311282')

问题是,当它到达服务器端代码时,#char已经解码为’#’
和Uri对象认为它是一个片段char. Win8机器接收到#innotouched字符的url.

试着:
1)使用此配置设置

<httpRuntime targetFramework="4.5" relaxedUrlToFileSystemMapping="true" />

2)在URL的末尾添加“/”

http://my.host/api1/MyEntity('%2311282')/

3)卸载url rewrite 2模块 – 并重新安装.还尝试在web.config中为模块注释重写部分.

为什么我要复制Windows 8的行为 – 不解码URL.有任何想法吗?

解决方法

看一看Rewrite Module.

一些信息here:
保留原始URL

URL重写模块在以下服务器变量中保留原始请求的URL路径:

HTTP_X_ORIGINAL_URL – 此服务器变量包含解??码格式的原始URL;
UNENCODED_URL – 此服务器变量包含与Web客户端请求完全相同的原始URL,并保留所有原始编码.

希望有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读