2009-07-28 233 views
2

過去,我已經構建了ASP.NET Web服務,這些服務都是公開使用的,或者使用了Windows身份驗證。我現在需要構建一個使用SOAP 1.1協議的Web服務,並且需要使用來自調用者的用戶名和密碼進行保護。ASP.NET Web服務安全

對於WCP來說,看起來setting up the infrastructure對於一個或兩個Web服務來說是矯枉過正的。還有其他建議嗎?我也在考慮使用ASP.NET 4.0 Beta,如果有人已經探討了這種情況,這將有助於瞭解你的意見。

在此先感謝您的建議。

回答

6

最簡單的方法是創建一個帶有每次調用的身份驗證信息特殊頭和認證/授權這樣

下面是一些示例代碼的用戶: http://aspalliance.com/805_Soap_Headers_Authentication_in_Web_Services

注意,這樣你正在發送明文的用戶名和密碼,所以你想要使用SSL或使用某種摘要身份驗證

+0

如果使用客戶端使用庫(如PHP SOAP),他們是否可以通過庫輕鬆寫入標頭? – Josh 2009-07-28 20:58:40

0

有這樣做的不同方式。其中一個可以使得能夠訪問特定的一組IP。如果IP不匹配其中一個列表,那麼您可以輕鬆地在方法級別拒絕該呼叫。

否則,您可以創建另一個方法,該方法將返回一個標記,然後使所有相關方法預期該標記作爲回報以處理該請求。

0

使用SSL。強制每個使用您的web服務的人使用https。

 //Check for Secure Channel: HTTPS 
     if (!Context.Request.IsSecureConnection) 
      return "The HTTP Connection must use Secure Sockets (HTTPS)";