標籤:blog http ar sp div on art 問題 log
轉自:http://www.cnblogs.com/geqinggao/p/3270499.html
近來項目需要Web Service驗證授權,一般有兩種解決方案:
1.通過通過SOAP Header身分識別驗證。
2.通過整合windows身分識別驗證。
今天我就嘗試了已第二種方式進行授權,首先發布Web Service到IIS,然後選擇身分識別驗證,啟用Windows身分識別驗證,禁用匿名驗證
發布好了Web Servive就要在Client端調用了,我用的是VS2008,在client端項目引用中右鍵加入服務參考,輸入地址修改命名空間確定
接下來就要寫後台調用代碼了:
嘗試了多種授權,始終會報HTTP 要求未經用戶端驗證方案“Anonymous”授權。從伺服器收到的身分識別驗證標題為“Negotiate,NTLM”。的錯誤,很無解啊!
想到是不是因為.net 3.5通過加入服務參考(WCF引用)的方式和2.0 Web Service有相容性問題呢?老老實實的以WS2005的方式添加Web Service再試:
因為發布Web Service的時候啟用了Windows身分識別驗證,所有在引用時會提示你舒服使用者名稱和密碼,輸完了下面的頁面才是真正的“添加Web引用”而不是“加入服務參考”
接下來後台代碼:
private void button1_Click( object sender, EventArgs e) { XmlNode x = null ; WSPTIClient.PTIWS.PTIWebService s = new WSPTIClient.PTIWS.PTIWebService(); s.Credentials = new System.Net.NetworkCredential( "Gerry" , "password" ); x = s.Transight_RetrieveOrder(1, DateTime.Now.Date, "-1" ); MessageBox.Show(x.OuterXml); } |
運行不報錯了,一切OK.我們再看看項目的引用多了一個“添加Web引用”
參考資料:http://developer.51cto.com/art/200908/141829.htm
HTTP 要求未經用戶端驗證方案“Anonymous”授權。從伺服器收到的身分識別驗證標題為“Negotiate,NTLM”