[英]asmx web service: client authentication
我有一個Web服務,有一堆方法,我想有點安全。 這些數據實際上並非完全保密,但我仍然希望僅限訪問那些使用存儲在Web服務web.config文件中的特定用戶ID和密碼的人 。 AC #Windows服務客戶端將每天或每周調用一次此Web服務。
任何人都可以發布一個如何做到這一點的簡單例子嗎? 提前致謝。
這與我的問題非常相似: “ 我們應該如何實施以授權客戶使用我們的網絡服務? ”
我們最終沒有發布WSDL,只通過https提供服務並要求進行基本身份驗證 。 如果您不能強制所有客戶端使用https,請不要使用基本身份驗證。
如果這是一個.net Web服務,那么這里是配置文件條目,以防止wsdl被發布。
<system.web>
<webServices>
<protocols>
<remove name="Documentation" />
</protocols>
</webServices>
</system.web>
當您轉到頁面時,您將收到一條錯誤消息,類似於您嘗試從站點手動下載web.config時所獲得的消息。 正如Steven所指出的那樣,這是通過默默無聞的安全性, 不應該單獨使用來保護您的Web服務。 但是,當除了基本的auth + https之外還使用它時,它還是一個不錯的額外功能。
客戶端代碼:
要從客戶端訪問此Web服務,請以正常方式和調用代碼添加Web引用(假設您的Web引用名為WebRef)。
WebRef.Url = "url";
WebRef.Credentials = new System.Net.NetworkCredential("userid", "password");
此外,您可能需要查看WebRef.PreAuthenticate以節省一些往返次數。 請注意,如果你是公司代理人,那么你將有一個有趣的時間進行測試。 通過WebRef by使用代理
WebRef.Proxy = new WebProxy("url");
WebRef.Proxy.Credentials = new System.Net.NetworkCredential("userid", "password");
臨時SOAP安全性有三種常規方法:
在這三個中, 我推薦第一種方法,它不需要服務器維護狀態,但由於緩存可以同樣快。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.