人妻无码中文字幕永久在线,99RE6这里有精品热视频,国产成人综合色就色综合 ,蜜臀av在线观看

新聞建站cms系統(tǒng)、政府cms系統(tǒng)定制開發(fā)

廣州網(wǎng)站建設公司-閱速公司

asp.net新聞發(fā)布系統(tǒng)、報紙數(shù)字報系統(tǒng)方案
/
http://www.jdki.com.cn/
廣州網(wǎng)站建設公司
您當前位置:首頁>ASP.NET MVC

ASP.NET MVC

WebService SoapHeader的使用

發(fā)布時間:2011/3/22 22:57:11  作者:  閱讀:833  

廣告:

7.9 如何保證Web Service的安全

要以安全的方式訪問Web服務方法,可以考慮以下安全措施:

是誰調(diào)用?--SoapHeader身份認證。

來自哪里?--訪問IP認證。

加密傳輸 --SSL安全訪問。

這些安全保護措施常常是配合使用的。

7.9.1 通過SoapHeader來增強Web Service的安全性

通過SoapHeader我們可以讓具有指定用戶口令的用戶來訪問我們的Web服務接口。(完整代碼示例位置:光盤\code\ch07\WebAppClient\WebForm-SoapHeader.aspx)


1.Web Service實現(xiàn)步驟

(1)定義自己的SoapHeader派生類。


//<summary>
//定義自己的SoapHeader派生類
//</summary>
publicclassMySoapHeader:System.Web.Services.Protocols.SoapHeader
{
privatestring_UserID=string.Empty;
privatestring_PassWord=string.Empty;
//<summary>
//構(gòu)造函數(shù)
//</summary>
publicMySoapHeader()
{
}
//<summary>
//構(gòu)造函數(shù)
//</summary>
//<paramname="nUserID">用戶ID</param>
//<paramname="nPassWord">加密后的密碼</param>
publicMySoapHeader(stringnUserID,stringnPassWord)
{
Initial(nUserID,nPassWord);
}
#region屬性
//<summary>
//用戶名
//</summary>
publicstringUserID
{
get{return_UserID;}
set{_UserID=value;}
}
//<summary>
//加密后的密碼
//</summary>
publicstringPassWord
{
get{return_PassWord;}
set{_PassWord=value;}
}
#endregion
#region方法
//<summary>
//初始化
//</summary>
//<paramname="nUserID">用戶ID</param>
//<paramname="nPassWord">加密后的密碼</param>
privatevoidInitial(stringnUserID,stringnPassWord)
{
UserID=nUserID;
PassWord=nPassWord;
}
//<summary>
//驗證用戶名密碼是否正確
//</summary>
//<paramname="nUserID">用戶ID</param>
//<paramname="nPassWord">加密后的密碼</param>
//<paramname="nMsg">返回的錯誤信息</param>
//<returns>用戶名密碼是否正確</returns>
privateboolIsValid(stringnUserID,stringnPassWord,outstringnMsg)
{
nMsg="";
try
{
//判斷用戶名密碼是否正確
if(nUserID=="admin"&&nPassWord=="admin")
{
returntrue;
}
else
{
nMsg="對不起,你無權(quán)調(diào)用此Web服務。";
returnfalse;
}
}
catch
{
nMsg="對不起,你無權(quán)調(diào)用此Web服務。";
returnfalse;
}
}
//<summary>
//驗證用戶名密碼是否正確
//</summary>
//<returns>用戶名密碼是否正確</returns>
publicboolIsValid(outstringnMsg)
{
returnIsValid(_UserID,_PassWord,outnMsg);
}
#endregion
}


(2)添加基于SoapHeader驗證的Web Service接口方法:


//<summary>
//通過SoapHeader來增強WebService的安全性
//</summary>
[WebService(Namespace="[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
publicclassWebService_Soap:System.Web.Services.WebService
{
//聲明Soap頭實例
publicMySoapHeadermyHeader=newMySoapHeader();

//普通方法,不需要SoapHeader驗證
[WebMethod(Description="根據(jù)產(chǎn)品編號查詢產(chǎn)品的價格")]
publicstringGetProductPrice(stringProductId)
{
Productspro=newProducts();
returnpro.GetPrice(ProductId);
}
//需要SoapHeader驗證
[SoapHeader("myHeader")]
[WebMethod(Description="根據(jù)產(chǎn)品編號查詢產(chǎn)品的價格",EnableSession=true)]
publicstringGetProductPrice2(stringProductId)
{
stringmsg="";
//驗證是否有權(quán)訪問
if(!myHeader.IsValid(outmsg))
{
returnmsg;//返回錯誤信息
}
Productspro=newProducts();
returnpro.GetPrice(ProductId);
}
}


2.客戶端調(diào)用具有SoapHeader的Web Service


//創(chuàng)建myService對象
ProductServiceSoap.WebService_Soapservice=

newProductServiceSoap.WebService_Soap();
//創(chuàng)建soap頭對象
ProductServiceSoap.MySoapHeaderheader=newProductServiceSoap.MySoapHeader();
//設置soap頭變量
header.PassWord="admin";
header.UserID="admin";
service.MySoapHeaderValue=header;
//調(diào)用web方法
stringstrPrice=service.GetProductPrice2("001");


通過SoapHeader對用戶口令進行驗證,只有授權(quán)的用戶才可以使用該接口。確保了訪問接口用戶的安全性。

廣告:

相關(guān)文章
WebService SoapHeader的使用
cms新聞系統(tǒng)購買咨詢
掃描關(guān)注 廣州閱速軟件科技有限公司
掃描關(guān)注 廣州閱速科技