刷新页面重新加载了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试试 --------------------编程问答--------------------
应该不会吧。。我在本机测试也是没问题的。之前服务器也是这样,最近做了修改,重新上传就出现这个问题了。
另。。。。高手大哥,你对新浪微博熟悉吗????? --------------------编程问答--------------------
session服务没有起来的症状是怎么样的,求。。。。 --------------------编程问答--------------------
那个代码 是以前做新浪微博登录的时候 新浪微博的技术给的 --------------------编程问答--------------------
登录授权的代码应该没错。我在别的项目上也是这样写的。都正常。本机调试什么的都正常,就是在服务器里运行。有问题。。。。 --------------------编程问答-------------------- SESSION 周期是一个会话状态。 --------------------编程问答-------------------- 先排除是否为服务器问题吧,用个简单页面测试一下,看看session是否保持纪录,不是服务器问题再来分析代码
补充:.NET技术 , ASP.NET