2009-11-23 197 views
4

我對使用WCF服務非常陌生。現在我有一個使用jQuery調用的WCF服務。我很擔心用戶在未經授權的情況下致電該服務。什麼是確保我的服務的最佳方式?安全WCF服務

回答

3

如果這是一個瀏覽器應用程序,你擔心安全性,大概你已經有了某種身份驗證機制(cookies,會話,某事)。所有這些都可以通過WebOperationContext.Current.IncomingRequest屬性從WCF服務(我假設您使用webHttpBinding或basicHttpBinding?)訪問。您可以從服務代碼中檢查/驗證Cookie(或其他任何內容),或者編寫一個橫切的MessageInspector,將檢查應用於您的服務行爲的所有方法。如果您使用compatibility flag託管服務,WCF服務也可以與傳統的ASP.NET身份驗證(表單等)集成。瀏覽器應用程序正常登錄,並且您的服務可以使用憑證/令牌/無論如何。

+0

我可以發送ASP.NET_SESSID值與我的jQuery請求,但一旦在另一邊,你如何驗證cookie值的會話?現在我正在使用JSON來處理我的回覆和請求。 – Matt

+0

如果您使用.svc中的IIS託管您的WCF服務,那麼瀏覽器已經發送了ASP.NET會話cookie(假設您有一個)。只需打開ASP.NET兼容模式,並查看服務代碼中的HttpContent.Current.Request.User(或其他任何你想要的)。 – nitzmahone

+0

對不起,這是HttpContext。 – nitzmahone

0

您可以使用證書籤署WCF的消息(這一切都在WCF設置)兩側(客戶端和服務器)

下面是一些詳細的解釋:

Message Security