【问题标题】:Get session object from sessionID in ASP.Net从 ASP.Net 中的 sessionID 获取会话对象
【发布时间】:2015-09-12 06:07:25
【问题描述】:

是否可以从sessionID 获取会话对象?

我有一个小项目使用 Flash 上传让用户将他们的文件上传到服务器,但问题是 Flash 在发送会话和 cookie 时有一些错误(在 Firefox 或 Chrome 中,但不是 IE),所以我找到了解决此问题的解决方案:通过 Flash 将sessionID 发送到服务器,并在服务器上将sessionID 解码回会话对象,但我不知道该怎么做。我正在使用 ASP.NET 和 C#。

谁能告诉我该怎么做?

【问题讨论】:

    标签: asp.net session session-state


    【解决方案1】:

    Moo-Juice 提供的链接已失效。

    我使用了本页提供的代码:

    http://snipplr.com/view/15180/

    它就像一个魅力。

    如果链接断开,代码如下:

    void Application_BeginRequest(object sender, EventArgs e)
    {
        try
        {
            string session_param_name = "ASPSESSID";
            string session_cookie_name = "ASP.NET_SESSIONID";
            string session_value = Request.Form[session_param_name] ?? Request.QueryString[session_param_name];
            if (session_value != null) { UpdateCookie(session_cookie_name, session_value); }
        }
        catch (Exception) { }
    
        try
        {
            string auth_param_name = "AUTHID";
            string auth_cookie_name = FormsAuthentication.FormsCookieName;
            string auth_value = Request.Form[auth_param_name] ?? Request.QueryString[auth_param_name];
    
            if (auth_value != null) { UpdateCookie(auth_cookie_name, auth_value); }
        }
        catch (Exception) { }
    }
    void UpdateCookie(string cookie_name, string cookie_value)
    {
        HttpCookie cookie = HttpContext.Current.Request.Cookies.Get(cookie_name);
        if (cookie == null)
        {
            HttpCookie cookie1 = new HttpCookie(cookie_name, cookie_value);
            Response.Cookies.Add(cookie1);
        }
        else
        {
            cookie.Value = cookie_value;
            HttpContext.Current.Request.Cookies.Set(cookie);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      • 2017-05-04
      • 2017-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多