Не уверен, почему при использовании IE получение значений сеанса работает просто отлично, но при использовании Google Chrome и Firefox оно не возвращает ничего?
Я уже включил IRequiresSessionState / IReadOnlySessionState в общий класс обработчика, но все еще не работал.
Так что моим последним средством было добавить значения моего сеанса в виде строки запроса в универсальном обработчике.
Но я все еще хочу знать, почему и что не так в Chrome и Firefox? Спасибо.
UPDATE:
вот как я справляюсь с Seesion SessionManager
Отлично работает на страницах ASPX и в IE, Chrome и Firefox
но при использовании на моей странице ASHX. Пример кода ниже
<%@ WebHandler Language="C#" Class="Upload" %>
using System;
using System.Web;
using System.Web.SessionState;
using System.IO;
public class Upload : IHttpHandler, IReadOnlySessionState
{
SessionManager sm;
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
context.Response.Expires = -1;
sm = new SessionManager();
try
{
HttpPostedFile postedFile = context.Request.Files["Filedata"];
string uploadedas = string.Empty;
if (context.Request.QueryString["as"] != null)
{
uploadedas = context.Request.QueryString["as"];
}
string username = sm.Username;
string sessionid = sm.SessionID;
//
// MORE CODES HERE
//
context.Response.Write(response);
context.Response.StatusCode = 200;
}
catch (Exception ex)
{
context.Response.Write("Error: " + ex.Message + "\r\n\r\n" + ex.StackTrace);
}
}
public bool IsReusable {
get {
return false;
}
}
}
sm.Username и sm.SessionID возвращает пустую строку при использовании Chrome и Firefox ... но, как я уже говорил ранее, они отлично работают на страницах ASPX даже в разных браузерах.