0

我目前陷入了一种情况,我创建了一个ASP Web API项目,并从我的主MVC应用程序中使用Thinktecture身份服务器进行联合身份验证。Thinktecture Identity Server Cors支持

我面临的问题与web 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. 

错误是有道理的,因为该请求不包含在HTTP标头WSFederationAuthenticatioModule需要验证我已经登录。

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

回答

0

据我看到你有3个问题在这里: 1.如何启用Web API的WIF身份验证。

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

  1. 之后,您必须在Ajax请求中的安全性标头中发送令牌。
  2. 如果你的MVC网站和网页API不在同一个域,那么你就必须处理CORS问题

对于问题2 & 3参见:Dog fooding our api authentication

This也应该给你一个如何使用您的MVC站点中收到的安全令牌来验证您的Web API。

相关问题