在本机上测试没有问题。一切都正常,放在服务器上,就不行了,当刷新了页面后,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就被重置了,
是什么原因呀,请高手指点,我放在本机调机没有一点问题呀
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就被重置了,
是什么原因呀,请高手指点,我放在本机调机没有一点问题呀
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);
}