Application_AcquireRequestState

 //*
        protected void Application_AcquireRequestState(Object sender, EventArgs e)
        {
            HttpApplication _httpApp = (HttpApplication)sender;

            if (Request.Params["sid"] == null) //请求不到sid
            {
                _httpApp.Context.Session["online"] = "游客(" + Request.ServerVariables["REMOTE_ADDR"] + ":" + Request.ServerVariables["REMOTE_PORT"] + ")";

                string _referUrl = _httpApp.Context.Request.Url.AbsoluteUri.ToLower();

                Response.Redirect(_referUrl + "?sid=" + Session.SessionID);
            }
            else if (Request.Params["sid"] != null)  //可以请求到sid
            {
                if (Session["online"] == null) //sid是假的,或已经失效
                {
                    _httpApp.Context.Session["online"] = "游客(" + Request.ServerVariables["REMOTE_ADDR"] + ":" + Request.ServerVariables["REMOTE_PORT"] + ")";

                    string _referUrl = _httpApp.Context.Request.Url.AbsoluteUri.ToLower();

                    //先去掉sid的值,再加上sid的值
                    int _start = _referUrl.IndexOf("sid=", 0) + 4;
                    int _end = _referUrl.IndexOf("&", _start);//取得sid后面&的位置,如果没有&则返回负数
                    if (_end < 0)
                    {
                        _end = _referUrl.Length;
                    }

                    string _getSubString = _referUrl.Substring(_start, _end - _start);

                    _referUrl = _referUrl.Replace(_getSubString, Session.SessionID);

                    Response.Redirect(_referUrl);
                }
            }
        }
    
        //*/

posted on 2008-01-03 14:14  xiaoyz  阅读(562)  评论(0)    收藏  举报

导航