久久国产亚洲日韩一本,欧美日韩专区国产精品,久久精品成人欧美大片,久久久久久久岛国免费AV,亚洲欧洲精品一区二区

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

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

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

ASP.NET MVC

WebService SoapHeader的使用

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

廣告:

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新聞系統購買咨詢
掃描關注 廣州閱速軟件科技有限公司
掃描關注 廣州閱速科技
主站蜘蛛池模板: 巧家县| 奉化市| 宜昌市| 河曲县| 临邑县| 榕江县| 新乡市| 防城港市| 蒙山县| 高雄市| 嵊州市| 新民市| 江川县| 资溪县| 虎林市| 大石桥市| 耿马| 吉木萨尔县| 萝北县| 乌兰察布市| 翁牛特旗| 河池市| 芜湖市| 塔河县| 安远县| 石河子市| 龙江县| 元江| 原阳县| 宜城市| 尼勒克县| 衡南县| 清徐县| 金川县| 马鞍山市| 青州市| 新安县| 星子县| 铁岭市| 武邑县| 望谟县|