wse2.0發布了,大家都來一起研究吧,我先來拋磚引玉:
呼叫webservice時有的時候安全性要求比較高,wse提供了客戶端證書來呼叫webservice,好我們就來看看怎麼弄。
呼叫webservice當然有客戶端和webservice端了,我們先來看看
客戶端:
using microsoft.web.services2.security;
using microsoft.web.services2.security.tokens;
using microsoft.web.services2.security.x509;
1。// 在個人證書儲存區獲取證書
x509certificatestore store = x509certificatestore.currentuserstore( x509certificatestore.mystore );
store.openread()
//讀取證書的keyid
x509certificatecollection certs = store.findcertificatebykeyidentifier( convert.frombase64string( keyidentifier ) );
x509securitytoken token = null;
if (certs.count > 0)
2。//把token加入到soap中
servicewse serviceproxy = new servicewse(); //遠端webservice**
serviceproxy.requestsoapcontext.security.tokens.add( token );
serviceproxy.requestsoapcontext.security.elements.add( new messagesignature( token ) );
3。呼叫webservice的方法:
。。。和普通呼叫webservice的方法一樣,我這裡就不說了:)
webservice端:
1。配置web.config
在configuration節點下加:
表示引用的是wse2.0
在下加:
在configuration節點下加:
這個wse2.0中規定的xml節點。
2。驗證客戶端提交上來的證書
//獲取客戶端提交上來的證書
x509securitytoken x509token = getsigningtoken(requestsoapcontext.current) as x509securitytoken;
public securitytoken getsigningtoken(soapcontext context)
}}
return null;
}//判斷證書是否合法
//根據證書的keyid來判斷
//這個就是證書的keyid,
x509token.keyidentifier.value
。。。如果和你頒發的證書keyid不一致的話,你可以拋給他乙個錯誤:
throw new securityfault(securityfault.failedauthenticationmessage, securityfault.failedauthenticationcode);
如果正確,執行webservice中的**。
X 509標準簡介
伺服器ssl數字證書和客戶端單位數字證書的格式遵循 x.509 標準。x.509 是由國際電信聯盟 itu t 制定的數字證書標準。為了提供公用網路使用者目錄資訊服務,itu 於 1988 年制定了 x.500 系列標準。其中 x.500 和 x.509 是安全認證系統的核心,x.500 定義了一種...
X 509證書校驗
x.509證書校驗 這裡討論openssl 中如何應用 crls 和來自證書體系的其他證書來進行證書校驗。為此需要使用 x.509 包的功能函式。ssl協議實現已經處理了很多這裡將要討論的東西,即使如此,一些工作還是需要我們親歷親為,特別是當我們希望在證書校驗過程中使用 crls 的校驗,大部分情況...
X 509標準簡介
伺服器ssl數字證書和客戶端單位數字證書的格式遵循 x.509 標準。x.509 是由國際電信聯盟 itu t 制定的數字證書標準。為了提供公用網路使用者目錄資訊服務,itu 於 1988 年制定了 x.500 系列標準。其中 x.500 和 x.509 是安全認證系統的核心,x.500 定義了一種...