Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c mvc 5为什么我的会话为空?_C#_Asp.net Mvc 5_Oauth 2.0_Twitter Oauth - Fatal编程技术网

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

C# c mvc 5为什么我的会话为空?,c#,asp.net-mvc-5,oauth-2.0,twitter-oauth,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(con

所以我正在使用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();
        .....
    }
我在GetRequestToken方法中设置了Session[oauth_secret],当我调试时,我发现它很好

然而,当我开始讨论GetAccessToken时,该值不再存在,会话为null。为什么会这样

还有一个相关的问题,我是否应该在会话中保留这些值


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

你检查过你的twitter的accessToken过期了吗? 我认为它的时间有限,在那之后你必须再次得到它。
考虑在一定时间内自动获取accessToken。

尝试HttpContext.Current.Session。我正在授权用户并尝试获取访问令牌,所以这不会发生。