日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

调用WebService时加入身份验证,以拒绝未授权的访问

發(fā)布時間:2025/1/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 调用WebService时加入身份验证,以拒绝未授权的访问 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

調(diào)用WebService時加入身份驗證,以拒絕未授權(quán)的訪問

分類: WebService 548人閱讀 評論(4) 收藏 舉報

????? 眾所周知,WebService是為企業(yè)需求提供的在線應(yīng)用服務(wù),其他公司或應(yīng)用軟件能夠通過Internet來訪問并使用這項在線服務(wù)。但在有些時候的某些應(yīng)用服務(wù)不希望被未授權(quán)訪問,那么此時我們可以一下幾種方法來實現(xiàn)身份驗證。

?

方法一:在WebService中引入SoapHeader

[c-sharp] view plaincopyprint?
  • #region?配置登錄標頭 ??
  • ///?<summary> ??
  • ///?Code?CreateBy?BanLao ??
  • ///?</summary> ??
  • public?class?MySoapHeader?:?SoapHeader??
  • {??
  • ????private?string?strUserName?=?string.Empty;??
  • ????private?string?strPassWord?=?string.Empty;??
  • ??
  • ????public?MySoapHeader()?{?}??
  • ??
  • ????public?MySoapHeader(string?username,?string?password)??
  • ????{??
  • ????????this.strUserName?=?username;??
  • ????????this.strPassWord?=?password;??
  • ????} ?
  • ?
  • ????#region?構(gòu)造?用戶名|密碼 ??
  • ????///?<summary> ??
  • ????///?用戶名 ??
  • ????///?</summary> ??
  • ????public?string?UserName??
  • ????{??
  • ????????get?{?return?strUserName;?}??
  • ????????set?{?strUserName?=?value;?}??
  • ????}??
  • ????///?<summary> ??
  • ????///?密碼 ??
  • ????///?</summary> ??
  • ????public?string?PassWord??
  • ????{??
  • ????????get?{?return?strPassWord;?}??
  • ????????set?{?strPassWord?=?value;?}??
  • ????} ?
  • ?
  • ????#endregion ?
  • ?
  • ????#region?檢測是否正確登錄 ??
  • ????///?<summary> ??
  • ????///?檢測是否正確登錄 ??
  • ????///?</summary> ??
  • ????///?<returns></returns> ??
  • ????public?bool?CheckLogin()??
  • ????{??
  • ????????if?(strUserName?==?"合法登錄名"?&&?strPassWord?==?"合法登錄密碼")??
  • ????????{??
  • ????????????return?true;??
  • ????????}??
  • ????????else??
  • ????????{??
  • ????????????return?false;??
  • ????????}??
  • ????} ?
  • ?
  • ????#endregion ??
  • } ?
  • #endregion??
  • #region 配置登錄標頭 /// <summary> /// Code CreateBy BanLao /// </summary> public class MySoapHeader : SoapHeader { private string strUserName = string.Empty; private string strPassWord = string.Empty; public MySoapHeader() { } public MySoapHeader(string username, string password) { this.strUserName = username; this.strPassWord = password; } #region 構(gòu)造 用戶名|密碼 /// <summary> /// 用戶名 /// </summary> public string UserName { get { return strUserName; } set { strUserName = value; } } /// <summary> /// 密碼 /// </summary> public string PassWord { get { return strPassWord; } set { strPassWord = value; } } #endregion #region 檢測是否正確登錄 /// <summary> /// 檢測是否正確登錄 /// </summary> /// <returns></returns> public bool CheckLogin() { if (strUserName == "合法登錄名" && strPassWord == "合法登錄密碼") { return true; } else { return false; } } #endregion } #endregion

    ?

    ?

    加入一個服務(wù)用于測試:

    ?

    [c-sharp] view plaincopyprint?
  • #region?測試連接 ??
  • ?[System.Web.Services.Protocols.SoapHeader("myHeader")]??
  • ?[WebMethod(Description?=?"判斷用戶是否開通",?EnableSession?=?true)]??
  • ?public?string?_GetValue(string?strInputValue)??
  • ?{??
  • ?????if?(myHeader.CheckLogin())??
  • ?????{??
  • ?????????string?strReturnValue?=?strInputValue?+?"@CopyRight?By?BanLao?2010";??
  • ?????????return?strReturnValue;??
  • ?????}??
  • ?????else??
  • ?????{??
  • ?????????return?"無效的身份驗證,請重試!";??
  • ?????}??
  • ?} ?
  • ?#endregion??
  • #region 測試連接 [System.Web.Services.Protocols.SoapHeader("myHeader")] [WebMethod(Description = "判斷用戶是否開通", EnableSession = true)] public string _GetValue(string strInputValue) { if (myHeader.CheckLogin()) { string strReturnValue = strInputValue + "@CopyRight By BanLao 2010"; return strReturnValue; } else { return "無效的身份驗證,請重試!"; } } #endregion

    ?

    ?

    至此我們想要的需要通過身份驗證的服務(wù)配置好了,下面讓我們進行一些測試,新建一個webForm在Page_Load中:

    ??

    [c-sharp] view plaincopyprint?
  • WebLogon.MySoapHeader?myHeader?=?new?WebLogon.MySoapHeader();??
  • myHeader.UserName?=?"約定的合法用戶";??
  • myHeader.PassWord?=?"約定的合法密碼";??
  • ??
  • WebLogon.Service?This_Service?=?new?WebLogon.Service();??
  • This_Service.MySoapHeaderValue?=?myHeader;??
  • Response.Write(This_Service._GetValue("This?is?BanLao's?Test?Application?For?SoapHeader.?"));??
  • WebLogon.MySoapHeader myHeader = new WebLogon.MySoapHeader(); myHeader.UserName = "約定的合法用戶"; myHeader.PassWord = "約定的合法密碼"; WebLogon.Service This_Service = new WebLogon.Service(); This_Service.MySoapHeaderValue = myHeader; Response.Write(This_Service._GetValue("This is BanLao's Test Application For SoapHeader. "));

    ?

    ?

    當運行這個WebForm時,如果用戶名和密碼是正確的我們將看到:

    ?

    This is BanLao's Test Application For SoapHeader.?@CopyRight By BanLao 2010

    ?

    否則

    ?

    無效的身份驗證,請重試!

    ?

    ?

    方法二:Web Service以Session方式驗證

    ?

    [c-sharp] view plaincopyprint?
  • [WebMethod(Description?=?"檢測是否正確登錄",?EnableSession?=?true)]??
  • public?bool?CheckLogin(string?strUserName,?string?strPassword)??
  • {??
  • ????if?(strUserName.Equals("admin")?&&?strPassword.Equals("123456"))??
  • ????{??
  • ????????Session["LoginState"]?=?true;??
  • ????}??
  • ????else??
  • ????{??
  • ????????Session["LoginState"]?=?false;??
  • ????}??
  • ????return?(bool)Session["LoginState"];??
  • } ?
  • ?
  • #region?測試連接 ??
  • [WebMethod(Description?=?"測試連接",?EnableSession?=?true)]??
  • public?string?_GetValue(string?strInputValue)??
  • {??
  • ????if?(Session["LoginState"]?==?null?||?Session["LoginState"].Equals(false))??
  • ????{??
  • ????????return?"無效的身份驗證,請重試!";??
  • ????}??
  • ????else??
  • ????{??
  • ????????string?strReturnValue?=?strInputValue?+?"@CopyRight?By?BanLao?2010";??
  • ????????return?strReturnValue;??
  • ????}??
  • } ?
  • #endregion??
  • [WebMethod(Description = "檢測是否正確登錄", EnableSession = true)] public bool CheckLogin(string strUserName, string strPassword) { if (strUserName.Equals("admin") && strPassword.Equals("123456")) { Session["LoginState"] = true; } else { Session["LoginState"] = false; } return (bool)Session["LoginState"]; } #region 測試連接 [WebMethod(Description = "測試連接", EnableSession = true)] public string _GetValue(string strInputValue) { if (Session["LoginState"] == null || Session["LoginState"].Equals(false)) { return "無效的身份驗證,請重試!"; } else { string strReturnValue = strInputValue + "@CopyRight By BanLao 2010"; return strReturnValue; } } #endregion

    ?

    ?

    調(diào)用該服務(wù),

    ?

    [c-sharp] view plaincopyprint?
  • WebLogon.Service?This_Service?=?new?WebLogon.Service();??
  • This_Service.CookieContainer?=?new?System.Net.CookieContainer();??
  • if?(This_Service.CheckLogin("admin",?"123456"))??
  • {??
  • ????Response.Write(This_Service._GetValue("This?is?BanLao's?Test?Application?For?Session.?"));??
  • }??
  • WebLogon.Service This_Service = new WebLogon.Service(); This_Service.CookieContainer = new System.Net.CookieContainer(); if (This_Service.CheckLogin("admin", "123456")) { Response.Write(This_Service._GetValue("This is BanLao's Test Application For Session. ")); }

    ?

    ?

    當運行這個WebForm時,如果用戶名和密碼是正確的我們將看到:

    ?

    This is BanLao's Test Application For Session.?@CopyRight By BanLao 2010

    ?

    否則

    ?

    無效的身份驗證,請重試!

    ?

    ?

    注:如果需要多個合法用戶,可以在WebService中聲明判斷即可~

    轉(zhuǎn)載于:https://www.cnblogs.com/fx2008/archive/2012/06/02/2532139.html

    總結(jié)

    以上是生活随笔為你收集整理的调用WebService时加入身份验证,以拒绝未授权的访问的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。