ASHX中使用Session

 

想要在HttpHandler(ashx文件)中訪問Session的狀態值時,需要顯式的實現一個接口 IReadOnlySessionState,示例如下:

 

<% @ webhandler language="C#" class="DownloadHandler" %> 
using System; 
using System.Web; 
using System.Web.SessionState ; 

public class DownloadHandler : IHttpHandler,  IReadOnlySessionState 
{
  
public bool IsReusable { get { return true; } } 
  
public void ProcessRequest(HttpContext ctx) 
  { 
   ctx.Response.Write(ctx.Session[
"fred"]); 
  } 

 

如果要讀寫Session的值,那麼只要實現 IRequiresSessionState 接口就可以了,這兩個接口沒有待實現的方法,可直接使用。

<%@ WebHandler Language="C#" Class="ImageCode" %>

using System;
using System.Web;
using System.Web.SessionState;


public class ImageCode : IHttpHandler, IRequiresSessionState
{
    
    public void ProcessRequest (HttpContext context) {
        context.Session["UserID"]="1"//給Session賦值    }
 
    public bool IsReusable {
        get {
            return true;
        }
    }

}


 

發佈了29 篇原創文章 · 獲贊 0 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章