私はuploadifyを使用してファイルをアップロードしていますが、ファイルは自動的にハンドラーに投稿されます。次に、Webサイトの共通クラスの静的プロパティとして設定したハンドラーのセッションを変更します。次に、aspxページで同じセッションにアクセスしようとしましたが、値はnullです。これはCookieが原因であると感じていますが、URLでセッションIDを公開せずにこれを回避する方法が必要です。
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
cookielessをtrueに変更せずに、ASHXファイル内の現在のセッションにアクセスして変更し、ASPXページからセッションにアクセスするにはどうすればよいですか?
HttpContextを使用して、ASHXに渡されたコンテキストを使用してみました...何も機能しません。
この質問と同じですが、より安全な方法が必要です。ashxでセッションを設定し、aspxでそのセッションを取得します。
何か案は?