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。

相關問題