我正在HTTP处理程序中创建一个会话,并为其分配某种值,现在我想在。aspx页面中访问此值,但在那里我发现了我的会话的空值,因此我可以处理这个,如果任何人知道答案,请尽快回复这是我的。ashx代码
public class login_handler : IHttpHandler, IReadOnlySessionState,System.Web.SessionState.IRequiresSessionState
{
string MethodName = string.Empty;
string CallBackMethodName = string.Empty;
object Parameter = string.Empty;
DbUser _DbUser = new DbUser();
public void ProcessRequest(HttpContext context)
{
context.Response.Write(check(context));
context.Response.Redirect("project.aspx");
}
public string check(HttpContext context)
{
JsonResponse _response = new JsonResponse();
System.Web.Script.Serialization.JavaScriptSerializer jSearializer =
new System.Web.Script.Serialization.JavaScriptSerializer();
try
{
User _U = new User();
_U.email_address = context.Request.Params["email_address"].ToString();
_U.password = context.Request.Params["password"].ToString();
string company_name = string.Empty;
int company_id;
_response.IsSucess = true;
_response.CallBack = CallBackMethodName;
_response.ResponseData = _DbUser.check_user(_U);
context.Session["company_id"] = _DbUser.check_company(_U);
// in context.Session["company_id"] i got the value 10.
}
catch (Exception ex)
{
_response.Message = ex.Message;
_response.IsSucess = false;
}
return jSearializer.Serialize(_response);
}
public bool IsReusable
{
get
{
return false;
}
}
}
这是我的。aspx代码
protected void Page_Load(object sender, EventArgs e)
{
if (Session["company_id"] != null)
{
int a = (int)Session["company_id"];
}
这里如果(Session[company_id] != null返回false请告诉我如何在这个页面中获得session的值
这是我的网。配置代码
<sessionState mode="InProc" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="junaidcrmConnectionString" />
</providers>
</sessionState>
试着这样删除IReadOnlySessionState
public class login_handler : IHttpHandler,System.Web.SessionState.IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
context.Session["mySession"]="ABC";
}
}
尝试在web.config中为你的sesstionState添加无cookie属性:
<sessionState mode="InProc" cookieless="true" />
如果你从你的。ashx页面删除接口"IReadOnlySessionState"你的问题将得到解决。