gpt4 book ai didi

c# - 使用自定义 header 的 MVC 重定向

转载 作者:太空狗 更新时间:2023-10-29 21:09:23 34 4
gpt4 key购买 nike

希望这对外面的人来说是一个简单的问题。

基本上在收到对我的 MVC Controller 的请求后,我想:

  1. 在响应中添加“授权” header
  2. 重定向到位于另一个域的另一个应用程序
  3. 阅读此外部网站上的“授权” header 。

看起来是重定向行为,删除了我所有的自定义 header 和重定向。

我的问题是,如何添加新 header ,执行重定向,并让该 header 显示在 header 中以供接收主机 [在重定向结束时] 读取?

最佳答案

你不能。 HTTP 不是这样工作的。首先,“重定向”只是一个 301、302 或(自 HTTP 1.1 起)307 状态代码,其中 Location header 设置为客户端应该访问的 URL。向该 URL 发起请求的是客户端,因此您无法控制它们发送的 header 。

其次,HTTP 是无状态的,因此在某个时刻在某个响应中发送了 Authorization header 这一事实对任何 future 请求中发生的任何事情都没有影响。 Web 浏览器和其他 HTTP 客户端通过在服务器端使用 session 和在客户端使用 cookie 来绕过 HTTP 的无状态特性。客户端将 cookie 与请求一起发送到服务器。 cookie 与服务器上 session 存储中的一个项目相匹配,服务器从该 session 加载数据以提供状态保持状态的外观。

第三,cookie 在这种情况下不起作用,因为它们是域绑定(bind)的,不会随请求一起发送到它们并非来自的域。因此,即使您要创建 session 来维护授权,其他站点也永远不会看到它。

FWIW,此处的基本前提,与不同的域共享身份验证状态,正是开发 OAuth 等技术的目的。因此,请将 future 的研究指向该方向。

关于c# - 使用自定义 header 的 MVC 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18026050/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com