use*_*146 6 c# model-view-controller asp.net-mvc http-headers asp.net-mvc-4
希望对于那里的某个人来说,这是一个简单的问题.
基本上收到我的MVC控制器的请求后,我想:
它似乎是重定向,删除所有自定义标头和重定向的行为.
我的问题是,如何添加新标头,并执行重定向,并在接收主机[在重定向结束时]的标题中显示该标题?
你不能.这不是HTTP的工作方式.首先,"重定向"只是一个301,302或(自HTTP 1.1)307状态代码,其Location标头设置为客户端应该访问的URL.它是客户端发起对该URL的请求,因此您无法控制它们发送的标头.
其次,HTTP是无状态的,这样一个事实Authorization头球攻门被在某些时候某些响应发送具有零上的任何东西轴承是发生在未来的任何请求.Web浏览器和其他HTTP客户端通过使用服务器端的会话和客户端的cookie来绕过HTTP的无状态特性.客户端使用请求将cookie发送到服务器.cookie与服务器上会话存储中的项匹配,服务器从该会话中加载数据,以便像保持状态一样提供外观.
第三,cookie在这种情况下不起作用,因为它们是域绑定的,不会与请求发送到它们不是源自的域.因此,即使您要创建会话以维护授权,另一个站点也永远不会看到它.
FWIW,这里的基本前提,与不同的域共享身份验证状态,正是为OAuth开发的技术.因此,在这方面的未来研究.
否 - 302 重定向由浏览器处理,不会重新附加标头。
选项: