Thinktecture Identity Server Cors支持

时间:2013-11-27 11:25:24

标签: asp.net-web-api cors claims-based-identity thinktecture-ident-server

我目前陷入困境,我创建了一个ASP Web API项目,并与我的主MVC应用程序分开部署,后者使用Thinktecture身份服务器进行联合身份验证。

我面临的问题与网络api cors支持有关。更具体地说,我在mvc应用程序中验证我的自我,但是当它向web api发送请求时,我收到以下错误:

XMLHttpRequest cannot load XXX. The request was redirected to 'https://localhost/idsrv/issue/wsfed?wa=wsignin1.0&wtrealm=http%3a%2f%2floca…assive%2..., which is disallowed for cross-origin requests that require preflight. 

错误是有道理的,因为请求不包含WSFederationAuthenticatioModule所需的Http头,以验证我已经登录。

是否有任何可能的解决方法我不知道?

1 个答案:

答案 0 :(得分:0)

据我所知,你有3个问题: 1.如何使用Web API启用WIF身份验证。

为此,您应该使用作为NuGet包存在的Thinktecture.IdentityModel.45(或MVC 5 - Thinktecture.IdentityModel)。请参阅此处的示例:Web Api security sample

  1. 之后,您必须在Ajax请求的安全标头中发送令牌。
  2. 如果您的MVC网站和您的Web Api不在同一个域上,那么您将不得不处理CORS问题
  3. 问题2& 3见:Dog fooding our api authentication

    This还应该让您了解如何使用MVC站点中收到的安全令牌来使用Web API进行身份验证。