簡體   English   中英

從asp.net aspx頁到ashx處理程序重用同一會話

[英]Reusing same session from asp.net aspx page to ashx handler

我試圖從asp.net頁調用ashx處理程序,並從處理程序中檢索xml數據。

  var url = "http://localhost/Settings/MyHandler.ashx?errors=false";

        var request = (HttpWebRequest)WebRequest.Create(url);
        request.Method = "GET";

        using (var response = (HttpWebResponse)request.GetResponse())
        {
            using (var stm = response.GetResponseStream())
            {
                using (var sr = new StreamReader(stm))
                {
                    var data= sr.ReadToEnd();
                }
            }
        }

現在,由於asp.net為每個webrequest創建新會話的性質,因此我無法重用從asp.net頁面到ashx處理程序的相同會話。

這兩個文件都來自同一項目。

我如何重用從asp.net到ashx處理程序的同一會話?

請注意:我已經標記了我的處理程序以實現IRequireSessionState,因此它具有會話。 我的問題是aspx頁面和ashx處理程序具有兩個不同的會話。每當我調用處理程序時,它都會創建一個新會話。 但是相反,我必須在處理程序內重用aspx頁面的同一會話,這意味着我必須在頁面的相同請求上下文中執行處理程序。

如果您指定.ashx類使用IRequiresSessionState接口,例如

public class myClass : IHttpHandler, System.Web.SessionState.IRequiresSessionState

{

}

然后,您應該能夠通過HttpContext.Current.Session訪問當前會話值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM