在每个请求上发送授权标头

时间:2013-09-19 03:19:49

标签: asp.net-mvc

我们的项目包括一个处理页面身份验证/授权和呈现的MVC区域,以及一个还需要身份验证/授权并将数据发送到页面的API区域。我们决定对服务器采用无状态,因此每个请求必须包含具有用户凭据的授权标头。

我在jquery的xhr.setRequestHeader('Authorization', 'Bearer ' + authCookie);中使用beforeSend的API调用完成此操作,但是我不确定如何为MVC端执行此操作(每次单击链接或输入URL时,请求应该包括Authorization标头)。目前我在Application_BeginRequest内设置Request.Headers["Authorization"] = Request.Cookies["auth"];,但我希望授权标头位于初始请求中,而不是仅在发送请求后添加。

1 个答案:

答案 0 :(得分:2)

我相信你将无法设置标题;当浏览器通过锚定点击指向您链接时(除非您使用jquery捕获所有锚点击,看起来像是矫枉过正),也不会在表单提交上发送标题(获取/发布,除非您再次捕获所有表单提交),以及杀手就是server side redirects will also not resend any custom headers

我强烈建议您重新考虑您的设计,而不是回答如何在jQuery中执行某些操作,因为根据上述事实,您很可能会遇到技术限制。