国产老熟女高潮毛片A片仙踪林,欧美喂奶吃大乳,狠狠爱无码一区二区三区,女神的私人医生动漫免费阅读

新聞建站cms系統、政府cms系統定制開發

廣州網站建設公司-閱速公司

asp.net新聞發布系統、報紙數字報系統方案
/
http://www.tjsimaide.com/
廣州網站建設公司
您當前位置:首頁>ASP.NET MVC

ASP.NET MVC

WebService SoapHeader的使用

發布時間:2011/3/22 22:57:11  作者:  閱讀:829  

廣告:

7.9 如何保證Web Service的安全

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

是誰調用?--SoapHeader身份認證。

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

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

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

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

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


1.Web Service實現步驟

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


//<summary>
//定義自己的SoapHeader派生類
//</summary>
publicclassMySoapHeader:System.Web.Services.Protocols.SoapHeader
{
privatestring_UserID=string.Empty;
privatestring_PassWord=string.Empty;
//<summary>
//構造函數
//</summary>
publicMySoapHeader()
{
}
//<summary>
//構造函數
//</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="對不起,你無權調用此Web服務。";
returnfalse;
}
}
catch
{
nMsg="對不起,你無權調用此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="根據產品編號查詢產品的價格")]
publicstringGetProductPrice(stringProductId)
{
Productspro=newProducts();
returnpro.GetPrice(ProductId);
}
//需要SoapHeader驗證
[SoapHeader("myHeader")]
[WebMethod(Description="根據產品編號查詢產品的價格",EnableSession=true)]
publicstringGetProductPrice2(stringProductId)
{
stringmsg="";
//驗證是否有權訪問
if(!myHeader.IsValid(outmsg))
{
returnmsg;//返回錯誤信息
}
Productspro=newProducts();
returnpro.GetPrice(ProductId);
}
}


2.客戶端調用具有SoapHeader的Web Service


//創建myService對象
ProductServiceSoap.WebService_Soapservice=

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


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

廣告:

相關文章
WebService SoapHeader的使用
cms新聞系統購買咨詢
掃描關注 廣州閱速軟件科技有限公司
掃描關注 廣州閱速科技
主站蜘蛛池模板: 富川| 南和县| 秦皇岛市| 邮箱| 广州市| 正宁县| 桦南县| 当雄县| 沾化县| 驻马店市| 新蔡县| 霍邱县| 比如县| 汨罗市| 惠州市| 长顺县| 武功县| 镇远县| 宁陕县| 务川| 太康县| 伊金霍洛旗| 共和县| 娄底市| 资阳市| 古丈县| 灵丘县| 全州县| 郁南县| 辽中县| 策勒县| 石渠县| 临邑县| 通州区| 陇西县| 鄂伦春自治旗| 普兰店市| 枣强县| 彰化县| 公安县| 鲁甸县|