flash菜單與asp.net進行交互_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:ASP.NET2.0MasterPage技巧總結
      好久沒有更新博客了,想了想寫一篇總結一下關于MasterPage的小技巧,都是自己在實際工作中遇到問題->解決問題發現,有更好的方法大家可直接指出。 1、關于MasterPage和Frameset的使用:網

      最近想做一個flash的菜單與asp.net進行交互. 參考了很多網上的資料,最后有以下心得,寫出來記一下。

      一、動態加載菜單
      菜單的內容如下(menu.xml):


      如果動態加載呢?

      1)把以menu.xml文件放到網站的根目錄之下,然后在flash的as中寫如下的as腳本.

      mymenu = new XML();
      mymenu.load("menu.xml");
      mymenu.ignoreWhite = true;
      mymenu.onLoad = findThefild;
      var passItOn = "";
      menu_text = "";
      var menu_array = new Array();
      var submenu_array = new Array();
      var menuurl_array = new Array();
      var submenuurl_array = new Array();
      var tempArray:Array = new Array();


      這樣就可以把菜單加載到flash中,至于如何顯示,就自己進行處理了.


      二、 給菜單中添加動態參數.
      我們很多時間使用的url都是如EditRole.aspx?rolename=role1之類,此時應該如何把"?rolename=role1"動態的傳給flash呢.
      我試驗了很多方法,最后的結果如下.
      1) 說一下有了flash之后的asp.net頁面的生成順序.例如我的頁面是editrole.aspx在此頁面中有一個flash菜單.
      editrole.aspx-->flash-->與flash通信的頁面.
      2) 如何把動態參數傳給flash呢,我使用的是xml讓asp.net與flash進行通信.
      3) 那么動態參數如何得到呢?這就要借用第三個頁面,也就是專門用來與flash進行交互的頁面.而不能使用所點擊的菜單的頁面.
      4) 如上在第一個打開的頁面如EditRole.aspx?rolename=role1中把"?rolename=role1"保存到cookie或緩存或seession中,
      然后則專門與flash進行通信的頁面把"?rolename=role1"編寫成xml,然后reponse.wirte(參數xml字符串),傳給flash.

      代碼:

      1.editrole.aspx頁面中的代碼.
      protected void Page_Load(object sender, EventArgs e)
      {
      this.txtUserName.Text = this.UserName;
      //this.Description.Text = ReponseXML();
      if (!IsPostBack)
      {
      ShowUserInfo();
      this.WirteCookie();
      }


      }

      public void WirteCookie()
      {

      //加密程序提供程序的名稱
      string symmProvider = "DESCryptoServiceProvider";
      //需要加密的xml字符串
      string stringToEncrypt = this.ReponseXML();
      //加密后的字符串
      string encryptedContentsBase64 = Cryptographer.EncryptSymmetric(symmProvider, stringToEncrypt);

      //寫cookies
      Response.Cookies["UserSettings"]["uid"] = encryptedContentsBase64;

      Response.Cookies["UserSettings"]["ur"] =this.UserRole;
      Response.Cookies["UserSettings"].Expires = DateTime.Now.AddHours(1);

      }

      //與flash進行交互的頁面.
      [WebService(Namespace = "http://tempuri.org/")]
      [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
      public class XmlRepley : IHttpHandler
      {

      public void ProcessRequest(HttpContext context)
      {
      context.Response.ContentType = "text/xml";
      // context.Response.Write("Hello World");

      string symmProvider = "DESCryptoServiceProvider";
      string stringToEncrypt = this.GetUID(context);
      string decryptedContentsBase64 = Cryptographer.DecryptSymmetric(symmProvider, stringToEncrypt);


      context.Response.Write(decryptedContentsBase64);
      }

      public string GetUID(HttpContext context)
      {
      string uid = String.Empty;
      if (context.Request.Cookies["UserSettings"] != null)
      {

      if (context.Request.Cookies["UserSettings"]["uid"] != null)
      { uid =context.Request.Cookies["UserSettings"]["uid"]; }

      }
      return uid;

      }
      public bool IsReusable
      {
      get
      {
      return false;
      }
      }
      }

      分享:編程高手 ASP.NET 狀態管理
      一般而言,HTTP協議是非狀態服務,它不保存任何用戶請求信息。直至NetScape開始使用Cookies來保存用戶請求信息,Web應用程序有了極大的發展。現在ASP.NET程序員可以使用很多種方式來保存用戶請

      共3頁上一頁123下一頁
      來源:模板無憂//所屬分類:.Net教程/更新時間:2008-08-22
      相關.Net教程