簡體   English   中英

使用WIF身份驗證從jquery消費WCF服務

[英]Consuming WCF service from jquery with WIF authentication

我們有一個使用REST的WCF服務。 除了使用Web客戶端之外,當我們將實現其他幾個客戶端時,這將包含所有業務邏輯。

我之所以將Thinktecture用作STS,是因為我們已經有了一個基礎結構,用於識別我們希望重用的舊客戶端中的角色。

為了測試所有內容,我有一個使用jQuery調用WCF服務的MVC應用程序。 MVC應用程序正確顯示了聲明和身份驗證,但是我無法使WCF服務重新使用此信息。

我已成功使MVC通過https和另一個域使用WCF:MVC使用https://localhost:40321而WCF使用https://localhost:40033

我已經讀過了《 如何將(聲明)安全性令牌傳遞給啟用WIF的WCF服務》,但是可接受的答案使用3.5 .NET框架,而我們想使用4.5。

所以我的問題是:

  1. 是否可以將jQuery與WIF以及Thinktecture和CORS一起使用? 如果是,您能為我指明正確的方向嗎? 我所閱讀的有關保護WCF的所有信息似乎都假定您將使用SOAP而不是REST。
  2. 如果在jQuery(或JavaScript)中無法實現第1點,則應使用哪種身份驗證? oAuth 1.0、2.0或其他。
  3. 正如我在Thinktecture中看到的那樣,您可以指定要返回給JWT的令牌。 這是使用認證的更好方法。 您如何配置WCF接受此令牌? 您如何使用javascript / jQuery提取此令牌? 我看到,如果您指定jQuery應該使用“ jsonp”,則它在請求的標頭中包含一個cookie。

我已經閱讀了此http://msdn.microsoft.com/zh-cn/library/hh446531.aspx,但據我所知,該示例使用的是WEB服務而不是WCF。

先感謝您。

我已閱讀更多內容,並且我認為自己的問題有答案。

  1. 是否可以將jQuery與WIF以及Thinktecture和CORS一起使用? 如果是,您能為我指明正確的方向嗎? 我所閱讀的有關保護WCF的所有信息似乎都假定您將使用SOAP而不是REST。

不,您不能使用jQuery直接訪問啟用了WIF的WCF。 最好創建一個實現REST並使用WCF作為該項目中的引用的WEB.NET api。 使用C#代碼使用WCF,並為REST調用添加一個薄層。

  1. 如果在jQuery(或JavaScript)中無法實現第1點,則應使用哪種身份驗證? oAuth 1.0、2.0或其他。

如果您想使用WIF,我認為最好使用Microsoft的東西以獲得更好的兼容性。 我並不是說一個比另一個更好。

  1. 正如我在Thinktecture中看到的那樣,您可以指定要返回給JWT的令牌。 這是使用認證的更好方法。 您如何配置WCF接受此令牌? 您如何使用javascript / jQuery提取此令牌? 我看到,如果您指定jQuery應該使用“ jsonp”,則它在請求的標頭中包含一個cookie。

Se答案1和2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM