c# - 在 .ashx 文件中创建了一个 session 并想在 .aspx 页面中访问但我发现了空值

标签 c# asp.net session

我正在 http 处理程序中创建一个 session 并为其分配某种值现在我想在 .aspx 页面中访问这个值但是我发现我的 session 的空值是新的所以我不能处理这个如果你们中的任何一个知道答案请尽快回复 这是我的 .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"];
        }

此处 if(Session[company_id] != null 返回 false 请帮助我知道如何在此页面中获取 session 的值

这是我的 web.config 代码

     <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";
    }
}

关于c# - 在 .ashx 文件中创建了一个 session 并想在 .aspx 页面中访问但我发现了空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32072583/

相关文章:

c# - Visual Studio 编译器可以编译,但 ReSharper 显示编译错误

c# - 在 WPF Calendar 控件中设置显示月份

没有项目文件的 ASP.NET

java - 管理同一台计算机上 Play 框架服务器的多个实例的 session 详细信息

c# - 我需要调用单个进程的准确CPU使用率

c# - 使用 TextPointers 选择时不要突出显示换行符

javascript - 在更改事件时将 asp 下拉列表的值更改为星号

asp.net - 是否有像 contentplaceholder 这样的控件在 asp.net 中用于纯 html

php - 使用 PHP 和 MySQL 创建成员(member)个人资料页面

ruby-on-rails - session 存储 :active_record_store options