2012-12-04 131 views
0

我有這些組件:如何在ASP.NET應用程序中使用WCF客戶端?

  1. ASP.NET應用程序(網站)
  2. WIF安全
  3. WCF服務(通過2個固定)

假設WCF服務(TestService的)已一個安全的方法:

Boolean IsItWorking(); 

現在網站中的頁面執行這些步驟S:

  1. 去限制頁面
  2. 提供的登錄憑證
  3. 過程WIF請求/響應創建=>餅乾
  4. 頁面提供ClientCredentials到一個單! WCF客戶參考
  5. 頁面調用TestService.IsItWorking()

它工作得很好,直到我意識到,單客戶端實例不工作。如何爲客戶提供憑證?在哪裏保持憑據?如何正確解決這種情況?

回答

1

基於WCF服務的基於用戶名/密碼的身份驗證可以簡單地通過WCF WSHttpBinding完成。有很多關於如何做到這一點的示例代碼。

http://codebetter.com/petervanooijen/2010/03/22/a-simple-wcf-service-with-username-password-authentication-the-things-they-don-t-tell-you/

有一些注意事項,與此一起去,但。如果您將身份提供者引入您的方案(或者是具有第三方身份提供者的本地一位聯邦成員),WIF將爲您提供更多選擇。然後,當用戶登錄時,WIF會爲您的ASP.NET應用程序提供安全令牌以及ASP.NET cookie。

此安全令牌充當聲明的載體,您的ASP.NET應用程序也可以重用此令牌以向您的WCF後端進行身份驗證。 WIF可以幫助您在ASP.NET和WCF兩端進行配置。查看WIF配置中的SaveBootstrapTokens = true屬性,並查看ChannelFactory.CreateChannelWithIssuedToken()以使用令牌與您的WCF服務交談。 WIF SDK有一個WSTrustChannel示例,演示了它的工作原理以及更多在線示例。

+0

當我有空閒時,我會研究它。與此同時,我已經通過variatron(每個會話的客戶端單身)解決了這個問題。它有效,但我仍然不確定。 – SmartK8

+0

謝謝,自舉令牌工作完美。 – SmartK8

相關問題