c#mvc 5为什么我的会话为空?

时间:2015-05-22 03:55:01

标签: c# asp.net-mvc-5 oauth-2.0 twitter-oauth

所以我正在使用Twitter API。我的代码如下所示:

        public ActionResult AuthorizeTwitter()
    {            
        Response.Redirect(GetRequestToken());
        return View();
    }

    private string GetRequestToken()
    {
        var twitter = new Twitter(consumer, consumerSecret, oauth_token, oauth_token_secret);
        twitter.BaseURI = requestUrl;
        var result = twitter.GetRequest("http://localhost:60707/Twitter/GetAccessToken");

        string[] resultArray = result.Split('&');
        twitter.RequestToken = resultArray[0].Split('=')[1];
        twitter.RequestTokenSecret = resultArray[1].Split('=')[1];

        var requestToken = Session["oauth_token"] = resultArray[0].Split('=')[1];            
        Session["oauth_secret"] = resultArray[1].Split('=')[1];

        string redirect = authorizeUrl + requestToken;
        return (redirect);
    }

    public ActionResult GetAccessToken()
    {

        string verifier = Request.Params["oauth_verifier"];
        string token = Request.Params["oauth_token"];
        string secret = Session["oauth_secret"].ToString();
        .....
    }

我在Session["oauth_secret"]方法中设置了GetRequestToken,当我调试时,我看到它很好。

然而,当我到达GetAccessToken时,该值不再存在且Session为 null 。为什么是这样?

另外,一个相关的问题,我应该在Session中保留这些值吗?

这样做有什么问题,还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

您是否检查过Twitter的accessToken已过期? 我认为它的时间有限,之后你必须再次获得它。 考虑自动化在一段时间内获取accessToken。