我使用WEBAPI(asp.net)和vs2015。
在我的web.config
我有这个重写网址规则,它将HTTP
重定向到HTTPS
(我知道我可以通过HSTS进行,但这不是重点):
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" enabled="true" stopProcessing="true">
<match url="(.*)"/>
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true"/>
</conditions>
<action redirectType="Temporary" type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
规则运作正常。
此外,我已经创建了一个自签名证书,并让Chrome信任它。
(es.com,是我的本地主机,通过主机文件)
它值得信赖:
但有些事情我不清楚。
当我使用POSTMAN发出 HTTP 请求时,我得到一个307重定向响应标头,重定向到HTTPS
并且确实发送了Authorization标头,我确实在我的webapi中看到了它:
以下是网络标签:
第一个请求是HTTP
,然后服务器发送HTTPS
重定向
正如您所看到的 - WEBAPI确实获得了Authorization标头。以下是SECOND请求确实发送了Authorization标头的证明:
现在小提琴手。
我向HTTP撰写了一个新请求:
我确实收到307的答复
但是第二个请求没有发送授权标头:
因此 - WEBAPI没有得到它的价值:
问题
1)为什么fiddler不发送授权标题?我怎样才能发送它
2)我想我在某处读到了授权标题没有在重定向BY DESIGN上发送。如果是这样 - 邮递员工作不正常吗?
我在这里缺少什么?
NB 我已经知道我可以创建一个包含授权值的自定义标头,它也会在重定向时发送。但这不是我的问题。