我們有一個在SAP中創建的Web服務消耗。我們能夠連接到服務成功地像使用使用C#的SOAP基本授權
var rowss = new EpiCompaniesImplServiceService(); //Service object creation
rowss.Credentials = new NetworkCredential("username", "password");
客戶建議我們不要在純文本,但在使用的用戶名密碼&編碼字符串的base64發送憑據。爲此,我們試圖通過轉換credentails添加授權頭base64編碼方式如下圖所示,
WebRequest myReq = WebRequest.Create(rowss.Url);
string usernamePassword = "username" + ":" + "password";
CredentialCache mycache = new CredentialCache();
myReq.Credentials = mycache;
myReq.Headers.Add("Authorization", "Basic " + usernamePassword);
但它拋出401未經授權錯誤。 現在客戶端要求我們嘗試傳遞SOAP標頭。請建議我通過將編碼憑據通過N/W憑證或通過SOAP頭傳遞來實現它。
我想你需要加入這一行'mycache.Add(新的URI(rowss.Url), 「基本」,基本);' – Jaco
它不是那樣工作的。嘗試過之前,它自己 –
你是否嘗試設置預認證爲true:'rowss.PreAuthenticate = true;' – Jaco