婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP.NET實現基于Forms認證的WebService應用實例

ASP.NET實現基于Forms認證的WebService應用實例

熱門標簽:400免費電話怎么辦理 威海電銷 寧夏機器人電銷 河南語音外呼系統公司 關于宗地圖標注技術規范 400電話辦理最優質 t3出行地圖標注怎么做 外呼電銷機器人軟件 河北網絡回撥外呼系統

本文實例講述了ASP.NET實現基于Forms認證的WebService應用方法。分享給大家供大家參考。具體實現方法如下:

在安全性要求不是很高的ASP.Net程序中,基于Forms的身份驗證是經常使用的一種方式,而如果需要對WebService進行身份驗證,最常用的可能是基于Soap 標頭的自定義身份驗證方式。如果對兩者做一下比較的話,顯然,基于Forms的驗證方式更加方便易用,能否將Forms驗證方式應用到WebService中去呢?

從理論上講,使用基于Forms的方式對WebService進行身份驗證是可行的,但是使用過程中會存在以下兩個問題:

1.基于Forms的驗證方式同時也是基于Cookie的驗證方式,在使用瀏覽器時,這個問題是不需要我們考慮的。但對于使用WebService的應用程序來說,默認是不能保存Cookie的,需要我們自己去做這個工作。

2.WebService既然是一個A2A(Application To Application)應用程序,使用Web表單進行身份驗證顯然不太合適,而且,這將不可避免的造成人機交互,使WebService的應用大打折扣。

接下來,我們就分步解決這兩個問題:

1.Cookie的保存問題

WebService的客戶端代理類有一個屬性CookieContainer可用于設置或獲取Cookie集合,保存Cookie的任務就交給他了:

System.Net.CookieContainer cookieContainer = new System.Net.CookieContainer();
MyService.WebService service = new App.MyService.WebService();
service.CookieContainer = cookieContainer;

2.我們不想使用Web表單進行身份驗證,幸運的是,ASP.Net表單驗證中的表單頁(即Web.config文件中 forms 元素內的loginUrl)同樣可以指定為WebService文件。
我們創建一個專門用作身份驗證的Web服務,暫且命名為Login.asmx,然后讓 loginUrl 等于 “Login.asmx”,當然,還需要在Web.config文件中的 authorization 節中禁止匿名訪問(否則我們可就白忙活了),完成配置后的Web.config文件如下:

?xml version="1.0" encoding="utf-8"?>
configuration>
 system.web>
 compilation debug="false" />
 authentication mode="Forms">
 forms name="MyService" loginUrl="Login.asmx">/forms>
 /authentication>
 authorization >
 deny users="?"/>
 /authorization>
 /system.web>
/configuration>

其實我們并不想在未通過身份驗證時讓瀏覽器轉向到Login.asmx,對于使用WebService的客戶程序來說,真正的實惠在于:可以匿名訪問Login.asmx中的方法(當然我們也可以把Login.asmx放在單獨的目錄中,然后允許對該目錄的匿名訪問來達個這個目的,但我覺得還是用loginUrl更優雅一些)。

接下來,我們為Login.asmx添加用于身份驗證的WebMethod:

[WebMethod]
public bool Check(string userName,string password)
{
 if(userName == "aaaaaa"  password == "123456")
 //添加驗證邏輯
 {
 System.Web.Security.FormsAuthentication.SetAuthCookie(userName, false);
 return true;
 }
 else
 {
 return false;
 }
}

最后一步工作就是:讓客戶程序中的WebService實例與Login實例共享CookieContainer。

class Sample
{
 System.Net.CookieContainer cookieContainer = new System.Net.CookieContainer();
 public void Login()
 {
 MyServiceLogin.Login login = new App.MyServiceLogin.Login();
 login.CookieContainer = cookieContainer;
 login.Check("aaaaaa", "123456");   
 }
 public void ShowHelloWorld()
 {
 MyService.WebService service = new App.MyService.WebService();
 service.CookieContainer = cookieContainer;
 Console.WriteLine(service.HelloWorld());
 }
}

Login()以后再ShowHelloWorld(),你是否看到了我們熟悉的“Hello World”?Ok,就這么簡單!

希望本文所述對大家的C#程序設計有所幫助。

您可能感興趣的文章:
  • Jquery + Ajax調用webService實例代碼(asp.net)
  • asp.net下使用jquery 的ajax+WebService+json 實現無刷新取后臺值的實現代碼
  • PHP中調用ASP.NET的WebService的代碼
  • jQuery Ajax方法調用 Asp.Net WebService 的詳細實例代碼
  • ASP.NET WebService中使用ASP.NET_SessionId的問題說明
  • 使用ASP.NET一般處理程序或WebService返回JSON的實現代碼
  • asp.net(c#)動態修改webservice的地址和端口(動態修改配置文件)
  • asp.net類庫中添加WebService引用出現問題解決方法
  • asp.net webservice返回json的方法
  • ASP.NET如何定時調用WebService服務
  • ASP.NET調用WebService服務的方法詳解
  • ASP.NET中Webservice安全 實現訪問權限控制
  • ASP.NET中基于soaphead的webservice安全機制

標簽:樂山 吉林 廣元 固原 池州 咸寧 淮北 賀州

巨人網絡通訊聲明:本文標題《ASP.NET實現基于Forms認證的WebService應用實例》,本文關鍵詞  ASP.NET,實現,基于,Forms,認證,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET實現基于Forms認證的WebService應用實例》相關的同類信息!
  • 本頁收集關于ASP.NET實現基于Forms認證的WebService應用實例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 昆明市| 宜都市| 宁化县| 榆中县| 曲沃县| 四会市| 金秀| 昌乐县| 斗六市| 始兴县| 临城县| 武平县| 鄂尔多斯市| 卢氏县| 五指山市| 五指山市| 西安市| 四川省| 浪卡子县| 休宁县| 黎平县| 江油市| 滨州市| 华容县| 平湖市| 方城县| 新昌县| 丰镇市| 满城县| 夏邑县| 叶城县| 宜丰县| 台北县| 松原市| 柳州市| 西华县| 拉萨市| 郧西县| 封开县| 肥城市| 新乡市|