ashxページでSession値を取得する方法
1142 ワード
通常のトランザクションページでは、次のように簡単にRequest、Responseオブジェクトを取得できます.
HttpRequest Request = context.Request;
HttpResponse Response = context.Response;
しかし、Sessionの値を得るのはそんなに簡単ではありません.たとえば、ashxでSessionに保存されているログインアカウントSession["userAccount"]を取得します.
もしあなたがcontextだけなら.Session[userAccount]の場合は、「オブジェクト参照をオブジェクトに設定していないインスタンス」という例外が報告されます
したがって,セッションの値をとるには,以下のようにする必要がある.
1、ネーミングスペースの導入:
using System.Web.SessionState;
2、IRequiresSessionStateインタフェースを実現する.具体的には以下の通りである.
HttpRequest Request = context.Request;
HttpResponse Response = context.Response;
しかし、Sessionの値を得るのはそんなに簡単ではありません.たとえば、ashxでSessionに保存されているログインアカウントSession["userAccount"]を取得します.
もしあなたがcontextだけなら.Session[userAccount]の場合は、「オブジェクト参照をオブジェクトに設定していないインスタンス」という例外が報告されます
したがって,セッションの値をとるには,以下のようにする必要がある.
1、ネーミングスペースの導入:
using System.Web.SessionState;
2、IRequiresSessionStateインタフェースを実現する.具体的には以下の通りである.
/// <summary>
/// $codebehindclassname$
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class AddUserInfo : IHttpHandler,IRequiresSessionState // ,
{
public void ProcessRequest(HttpContext context)
{
//...
//
if(context.Session["userAccount"] != null)
{
string account = context.Session["userAccount"].ToString();
}
//...
}
}