Я использую uploadify для загрузки файлов, они автоматически отправляются в обработчик. Затем я изменяю сеанс в обработчике, который я настроил как статическое свойство в общем классе веб-сайта. Затем я пытаюсь получить доступ к тому же сеансу на странице aspx, и значение равно null. У меня такое ощущение, что это из-за файлов cookie, но должен быть способ обойти это, не раскрывая идентификатор сеанса в URL-адресе.
ASHX:
public class Upload : IHttpHandler, IReadOnlySessionState, IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
...
CMSSession.Current.UploadedFiles.Add(fileName);
}
}
Класс сеанса:
public class CMSSession
{
public static CMSSession Current
{
get
{
CMSSession session = (CMSSession)HttpContext.Current.Session["__CMSSession__"];
if (session == null)
{
session = new CMSSession();
HttpContext.Current.Session["__CMSSession__"] = session;
}
return session;
}
}
public List<string> UploadedFiles { get; set; }
}
ASPX:
if (CMSSession.Current.UploadedFiles != null)
{
...
}
else
{
IT'S ALWAYS NULL
}
Web.Config:
<sessionState mode="InProc" cookieless="false" /> - causes session to always null in aspx when modified in ashx
<sessionState mode="InProc" cookieless="true" /> - session value is not null, but sessionid is exposed in the url
Как мне получить доступ и изменить текущий сеанс в файле ASHX БЕЗ изменения cookieless на true, а затем получить доступ к сеансу со страницы ASPX?
Я пробовал использовать HttpContext и использовать контекст, переданный в ASHX... ничего не работает.
то же, что и этот вопрос, но должен быть более безопасный способ: aspx">набор сеанса в ashx и получение этого сеанса на aspx
Любые идеи?