转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
asp.net 中的截取 Session 变量(翻译)         ★★★★

asp.net 中的截取 Session 变量(翻译)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2417 更新时间:2009/4/23 10:47:50


   private void ReleaseRequestState(object sender, EventArgs eventArgs )
   {
    // This event is a good choice for apply filters to the output
    // stream to the browser/client.  By overriding the filter, you
    // can modify the output stream after all the response.write''''s are
    // done and before it gets to the browser.
    // Just add your own business rules to determine whether a filter
    // should be applied at all.
    try
    {
      if(HttpRes.ContentType != "text/html") { return; } 
     // HttpRes.Filter = new IISCapture.FilterHtml(ref CaptureSession,HttpRes.Filter);  
    }
    catch (Exception err) { ProcessError(err.Message); }
   }


// Custom methods


 private bool IsSessionInTechSupportMode()
 {
  bool Ret = false;
  try
  { 
    if (HttpApp.Context.Session[IISCapture.TroubleTicket.TechSupportEnable] != null)
    {
     if (HttpApp.Context.Session[IISCapture.TroubleTicket.TechSupportEnable].ToString() =="1")
     {
        Ret=true;
     }
    }
  }
  catch { }
  return Ret;
  }

  private bool IsSessionATechSupportRep()
  {
    bool Ret = false;
    try
    {
      if (HttpApp.Context.Session[IISCapture.TroubleTicket.TechSupportRep] != null)
       {
         if (HttpApp.Context.Session[IISCapture.TroubleTicket.TechSupportRep].ToString() =="1")
         {
            Ret=true;
         }
       }
    }
    catch { }
    return Ret;
  }

 

  private void ProcessError(string ErrMsg)
  {
    HttpApp.Context.Response.Write(ErrMsg);
  }

 
  public void Dispose(){}
 }
}

 

 
TroubleTicket.cs
using System;
using System.Web;
using System.Collections;
using System.Text;
using System.IO;
using System.Diagnostics;

namespace IISCapture
{
 
 public class TroubleTicket
 {
 
   public const string TechSupportUserLastPage = "TechSupportUserLastPage";
   public const string TechSupportEnable = "TechSupportEnable";
   public const string TechSupportKey = "TechSupportKey";
   public const string TechSupportRep = "TechSupportRep";
   public const string TechSupportCache = "TechSupportCache_";
   public const string TechSupportCacheSession = "Session_";
   public const string TechSupportCacheForm = "Form_";
 

   public TroubleTicket()
   {
 
   }

 
   public void TransferToUrl(HttpContext oContext)
   {
     try
     {
      oContext.Response.Redirect(oContext.Session[TechSupportUserLastPage].ToString()); 
     }
     catch (Exception) { throw; }
   }
 
   public string LoadNewSessionToApplication(HttpContext oContext,string GotoUrl)
   {
      string TroubleTicket="";
      try
      {
        TroubleTicket = System.Guid.NewGuid().ToString();
        LoadSessionToApplication(oContext,TroubleTicket,GotoUrl);
        LoadFormToApplication(oContext,TroubleTicket);
      }
      catch (Exception) { throw; }
      return TroubleTicket;
   }
 
   public void LoadSessionToApplication(HttpContext oContext,string TroubleTicket,string GotoUrl)
   {
   
     try
     {
 
       oContext.Session[TechSupportUserLastPage] = GotoUrl;
       oContext.Session[TechSupportKey] = TroubleTicket;

       object[,] oValues = new object[2,oContext.Session.Keys.Count];

       for(int i=0;i<oContext.Session.Keys.Count;i++)
       {
          oValues[0,i] = oContext.Session.Keys[i].ToString();
          oValues[1,i] = oContext.Session[oContext.Session.Keys[i].ToString()];
       }

       oContext.Session[TechSupportEnable] = "1";

   if ((object[,])oContext.Cache[TechSupportCache + TechSupportCacheSession + TroubleTicket.Trim()] != null)
   {
     oContext.Cache.Remove(TechSupportCache + TechSupportCacheSession + TroubleTicket.Trim());
   }

   oContext.Cache.Insert(TechSupportCache + TechSupportCacheSession + TroubleTicket, _
         oValues,null,DateTime.MaxValue, TimeSpan.FromMinutes(10));
    
   }
   catch (Exception) { throw; }
   return;
  }
 
  public void LoadFormToApplication(HttpContext oContext,string TroubleTicket)
  {
    bool Found=false;
    try
    {
 
      object[,] oValues = new object[2,oContext.Request.Form.Keys.Count];

      for(int i=0;i<oContext.Request.Form.Keys.Count;i++)
      {
        oValues[0,i] = oContext.Request.Form.Keys[i].ToString();
        oValues[1,i] = oContext.Request[oContext.Request.Form.Keys[i].ToString()];
        Found=true;
      }
 
   if ((object[,])oContext.Cache[TechSupportCache + TechSupportCacheForm + TroubleTicket.Trim()] != null)
   {
     if (Found==true)
     {
       oContext.Cache.Remove(TechSupportCache + TechSupportCacheForm + TroubleTicket.Trim());
     }
   }

   oContext.Cache.Insert(TechSupportCache + TechSupportCacheForm + _
        TroubleTicket,oValues,null,DateTime.MaxValue, TimeSpan.FromMinutes(10));
    
   }
   catch (Exception) { throw; }
   return;
  }
 
 public string LoadSessionFromApplication(HttpContext oContext,string TroubleTicket)
 {
   string GotoUrl="";

   try
   {
   
    object[,] oValues = (object[,])oContext.Cache[TechSupportCache + _
                         TechSupportCacheSession + TroubleTicket.Trim()];
 
    for(int i=0;i<=oValues.GetUpperBound(1);i++)
    {
      oContext.Session[oValues[0,i].ToString()] = oValues[1,i]; 
    }

    oContext.Session[TechSupportEnable] = "0";
    oContext.Session[TechSupportRep] = "1";
    GotoUrl = oContext.Session[TechSupportUserLastPage].ToString();
    
   }
   catch (Exception) { throw; }
   return GotoUrl;
 }
 
 public object[,] GetFormFromApplication(HttpContext oContext,string TroubleTicket)
 {
   object[,] oValues = null;

   try
   {
     oValues = (object[,])oContext.Cache[TechSupportCache + TechSupportCacheForm + TroubleTicket.Trim()];
   }
   catch (Exception) { throw; }
   return oValues;
  }
 
 }
}

上一页  [1] [2] 


[Web开发]详细介绍session的用法详解  [Web开发]参数传递解决window.open的session变量丢失
[Web开发]php实现多session并发运行  [Web开发]彻底放弃IIS让Apache也支持ASP.NET
[Web开发]ASP.NET 2.0发送电子邮件中存在的问题  [Web开发]ASP.NET 2.0移动开发之属性重写和模板化
[Web开发]ASP.NET 2.0中实现模板中的数据绑定  [Web开发]ASP.NET 母版页概述
[Web开发]ASP.NET 2.0 ObjectDataSource控件  [Web开发]ASP.NET 页面对象模型
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台