【问题标题】:asp.net owin token ignoring httpredirectasp.net owin 令牌忽略 httpredirect
【发布时间】:2016-07-09 03:27:50
【问题描述】:

我们的 API 使用 OWIN OAuth Bearer Token。它在 https://server1.url/token 这样的端点中正常工作。

现在我们要将 API 重定向到第二个服务器 (server2)。我们将 server1 中的 IIS 配置为将所有对 API 的请求重定向到 server2。据我们注意到,此配置在 web.config 中添加了一个“httpredirect”条目。

现在的问题是令牌端点没有被重定向。其他所有端点都正确重定向到server2,但token端点没有重定向,在server1中正常处理,我们不明白为什么。

有人猜到了吗?

【问题讨论】:

  • 启用httpRedirect 后,对应用程序的每个请求都由IIS 处理,IIS 只需在标头中发送带有301 之类的状态的空主体。因此,客户端负责进一步的请求。但是很奇怪,IIS 没有重定向server1/token 请求。当您删除应用程序代码,只保留 web.config 重定向时会发生什么?
  • 感谢您的想法。我们会尽快尝试。

标签: asp.net redirect token owin http-redirect


【解决方案1】:

是的,似乎 OWIN 管道在 IIS 可以重定向请求之前就开始了。 httpRedirect 由 HttpRedirection 模块处理。而这个模块是在OWIN的模块之后被IIS注册的,它是在应用程序启动之前注册的PreApplicationStart

所以删除应用程序本身并只留下web.config

【讨论】:

  • 此更改部分解决了问题。请求开始被重定向,但我们没有得到可接受的响应。在@tenbits 提出更改建议后,我们注意到 POST 请求被以 GET 形式请求到新服务器。这里报告了一个类似的问题:programmers.stackexchange.com/questions/99894/… 正如它所暗示的,我们将响应 HTTP 代码更改为 307。这解决了问题的第二部分。
猜你喜欢
  • 2014-09-18
  • 1970-01-01
  • 2021-06-18
  • 1970-01-01
  • 2016-09-12
  • 2018-09-30
  • 1970-01-01
  • 1970-01-01
  • 2014-10-11
相关资源
最近更新 更多