要以安全的方式訪問web服務方法,可以考慮以下安全措施:
l 是誰呼叫?——soapheader身份認證。
l 來自**?——訪問ip認證。
l 加密傳輸 ——ssl安全訪問。
這些安全保護措施常常是配合使用的。
1.web service實現步驟
(1)定義自己的soapheader派生類。
////定義自己的soapheader派生類
//public class mysoapheader : system.web.services.protocols.soapheader
////建構函式
////使用者id
//加密後的密碼
public mysoapheader(string nuserid, string npassword)
#region 屬性
////使用者名稱
//public string userid
set
}////加密後的密碼
//public string password
set
}
#endregion
#region 方法
////初始化
////使用者id
//加密後的密碼
private void initial(string nuserid, string npassword)
////驗證使用者名稱密碼是否正確
////使用者id
//加密後的密碼
//返回的錯誤資訊
//使用者名稱密碼是否正確
private bool isvalid(string nuserid, string npassword, out string nmsg)
else
}catch
}////驗證使用者名稱密碼是否正確
////使用者名稱密碼是否正確
public bool isvalid(out string nmsg)
#endregion
}
(2)新增基於soapheader驗證的web service介面方法:
////通過soapheader來增強web service的安全性
//[webservice(namespace = "")]
[webservicebinding(conformsto = wsiprofiles.basicprofile1_1)]
[toolboxitem(false)]
public class webservice_soap : system.web.services.webservice
//需要soapheader驗證
[soapheader("myheader")]
[webmethod(description="根據產品編號查詢產品的**", enablesession = true)]
public string getproductprice2(string productid)
products pro = new products();
return pro.getprice(productid);
}
}
2.客戶端呼叫具有soapheader的web service
//建立myservice物件
productservicesoap.webservice_soap service = new productservicesoap.webservice_soap();
//建立soap頭物件
productservicesoap.mysoapheader header=new productservicesoap.mysoapheader();
//設定soap頭變數
header.password = "admin";
header.userid = "admin";
service.mysoapheadervalue = header;
//呼叫web 方法
string strprice = service.getproductprice2("001");
通過soapheader對使用者口令進行驗證,只有授權的使用者才可以使用該介面。確保了訪問介面使用者的安全性。
在預設情況下,iis使用http協議以明文形式傳輸資料,web service就是使用http協議進行資料傳輸的。web service傳輸的資料是xml格式的明文。沒有採取任何加密措施,使用者的重要資料很容易被竊取,如何才能保護網路中傳遞的這些重要資料呢?
ssl(security socket layer)的中文全稱是加密套接字協議層,它位於http協議層和tcp協議層之間,用於建立使用者與伺服器之間的加密通訊,確保所傳遞資訊的安全性,同時ssl安全機制是依靠數字證書來實現的。
ssl基於公用金鑰和私人金鑰,使用者使用公用金鑰來加密資料,但解密資料必須使用相應的私人金鑰。使用ssl安全機制的通訊過程如下:使用者與iis伺服器建立連線後,伺服器會把數字證書與公用金鑰傳送給使用者,使用者端生成會話金鑰,並用公共金鑰對會話金鑰進行加密,然後傳遞給伺服器,伺服器端用私人金鑰進行解密,這樣,使用者端和伺服器端就建立了一條安全通道,只有ssl允許的使用者才能與iis伺服器進行通訊。
ssl**不同於一般的web站點,它使用的是「https」協議,而不是普通的「http」協議。因此它的url(統一資源定位器)格式為「https://**網域名稱」。
實現步驟以後更新。
保證WebService的安全
給第三方做了個webservice,因為都是內部系統沒有用到什麼身份驗證,今晚突發奇想,翻書看了一下,有幾個個人認為不是很好的方法,現在展示出來,只求拋磚引玉 通過soapheader來增強webservice的安全性 通過soapheader可以讓具有指定使用者口令的使用者來訪問自己的webser...
質量如何保證
讀書主要是為了緩解非利益既得者的焦慮,有人懂嗎?之前對於質量的把控,主要是從 層面,從實現機制 業務邏輯 編碼規範等方面去用功,直到最近才忽然想到這可能是個謬論,只關注了乙個孤立的體系,說是閉門造車也不為過。傳統的生產製造領域早就有qc和qa,而對於像我們這種經歷的網際網路創業人員團隊,對於這一塊是...
PHP如何呼叫webservice
最近工作中需要用php呼叫web service介面,對php不熟,上網搜搜,發現關於用php呼叫web service的文章也不多,不少還是php4裡用nusoap這個模組呼叫的方法,其實php5裡已經包含了處理soap的模組,但是資料太少了,上php官網上查幫助,寫的不是很容易理解,經過多次實踐...