当前位置:编程学习 > C#/ASP.NET >>

刷新页面重新加载了global.asax,Session值被重置??

在本机上测试没有问题。一切都正常,放在服务器上,就不行了,当刷新了页面后,session的值被重置,我在服务器上断点调试过,在点击按钮后重新加载了global.asax,使得session的值为默认值了,我是在做新浪微博授权登录时产生这个问题,代码如下


    protected void Page_Load(object sender, EventArgs e)
    {





        if (Request["oauth_verifier"] != null)
        {
            httpRequest.Token = Session["oauth_token"].ToString();
            httpRequest.TokenSecret = Session["oauth_token_secret"].ToString();
            httpRequest.Verifier = Request["oauth_verifier"];
            httpRequest.GetAccessToken();
            Session["oauth_token"] = httpRequest.Token;
            Session["oauth_token_secret"] = httpRequest.TokenSecret;
            Session["oauth_user_id"] = httpRequest.userid;
            verify_credentials();


        }

        httpRequest.GetRequestToken();
        string url = httpRequest.GetAuthorizationUrl();
        Session["oauth_token"] = httpRequest.Token;
        Session["oauth_token_secret"] = httpRequest.TokenSecret;
        Response.Redirect(url + "&oauth_callback=" + Request.Url);


    }


当跳到授权页后执行:
        httpRequest.GetRequestToken();
        string url = httpRequest.GetAuthorizationUrl();
        Session["oauth_token"] = httpRequest.Token;
        Session["oauth_token_secret"] = httpRequest.TokenSecret;
        Response.Redirect(url + "&oauth_callback=" + Request.Url);

这时候,session有被赋值,当填写了 新浪微博用户名密码后,点击“确定”后应该是执行到
        if (Request["oauth_verifier"] != null)
        {
            httpRequest.Token = Session["oauth_token"].ToString();
            httpRequest.TokenSecret = Session["oauth_token_secret"].ToString();
            httpRequest.Verifier = Request["oauth_verifier"];
            httpRequest.GetAccessToken();
            Session["oauth_token"] = httpRequest.Token;
            Session["oauth_token_secret"] = httpRequest.TokenSecret;
            Session["oauth_user_id"] = httpRequest.userid;
            verify_credentials();


        }

但是在这之前,我断点到global.asax中 Session_Start,重新加载了一次,再执行代码。这样session就被重置了,
是什么原因呀,请高手指点,我放在本机调机没有一点问题呀。。。。。。 --------------------编程问答-------------------- 为毛要用定时器呢    返回指定的页面处理不行吗? --------------------编程问答-------------------- 没有用定时器呀 --------------------编程问答-------------------- global.asax 这不是定时器是什么??


Session["oauth_token"] = httpRequest.Token;
   Session["oauth_token_secret"] = httpRequest.TokenSecret;

这个地方或许你写错了  返回成功之后 应该是下面这个代码  

           oAuthSina oauth = new oAuthSina();
             if (Request["oauth_verifier"] != null)
             {
                 oauth.token = Session["oauth_token"].ToString();
                 oauth.tokenSecret = Session["oauth_token_secret"].ToString();
                 oauth.Verifier = Request["oauth_verifier"].ToString();
                 oauth.AccessTokenGet();
                 Session["oauth_token"] = oauth.token;

                 Session["oauth_token_secret"] = oauth.tokenSecret;

             }
             if (Session["oauth_token"] != null)
             {

                 var xml = oauth.oAuthWebRequest(oAuthSina.Method.GET,"http://api.t.sina.com.cn/account/verify_credentials.xml?source=" +
                                                 oauth.tokenSecret, String.Empty);
                 XmlDocument xmlDoc = new XmlDocument();
                 xmlDoc.LoadXml(xml);
} --------------------编程问答-------------------- 是服务器上的session服务没有起来吧,你做一个简单的页面测试下session试试 --------------------编程问答--------------------
引用 3 楼  的回复:
global.asax 这不是定时器是什么??


Session["oauth_token"] = httpRequest.Token;
  Session["oauth_token_secret"] = httpRequest.TokenSecret;

这个地方或许你写错了 返回成功之后 应该是下面这个代码  

  oAuthSina oauth = new oAuthSi……



 应该不会吧。。我在本机测试也是没问题的。之前服务器也是这样,最近做了修改,重新上传就出现这个问题了。
另。。。。高手大哥,你对新浪微博熟悉吗????? --------------------编程问答--------------------
引用 4 楼  的回复:
是服务器上的session服务没有起来吧,你做一个简单的页面测试下session试试



session服务没有起来的症状是怎么样的,求。。。。 --------------------编程问答--------------------
引用 5 楼  的回复:
引用 3 楼  的回复:
global.asax 这不是定时器是什么??


Session["oauth_token"] = httpRequest.Token;
Session["oauth_token_secret"] = httpRequest.TokenSecret;

这个地方或许你写错了 返回成功之后 应该是下面这个代码

oAuthSina oauth = ne……


那个代码 是以前做新浪微博登录的时候  新浪微博的技术给的 --------------------编程问答--------------------
引用 7 楼  的回复:
引用 5 楼 的回复:

引用 3 楼 的回复:
global.asax 这不是定时器是什么??


Session["oauth_token"] = httpRequest.Token;
Session["oauth_token_secret"] = httpRequest.TokenSecret;

这个地方或许你写错了 返回成功之后 应该是下面这个代码

oAuthSi……



登录授权的代码应该没错。我在别的项目上也是这样写的。都正常。本机调试什么的都正常,就是在服务器里运行。有问题。。。。 --------------------编程问答-------------------- SESSION 周期是一个会话状态。 --------------------编程问答-------------------- 先排除是否为服务器问题吧,用个简单页面测试一下,看看session是否保持纪录,不是服务器问题再来分析代码
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,