Instagram api服务器端身份验证asp.net mvc

时间:2016-11-09 15:34:27

标签: c# asp.net-mvc authentication httpwebrequest instagram-api

我试图通过IG文档中的示例实现服务器端身份验证,但遇到了麻烦。 当我正在处理我的请求时,我已收到状态为302 Found的响应,而在Headers位置我没有使用代码重新定位网址,但如果我在浏览器中执行同样的操作,那么一切正常。

这是我的代码和示例:

public JsonResult InstagramTeaser()
    {
        try
        {
            var clientId = Configuration.AuthKeys.InstagramOAuthClientId;
            var clientSecret = Configuration.AuthKeys.InstagramOAuthClientSecret;
            var redirectUrl = "http://localhost";
            var uri = $"http://api.instagram.com/oauth/authorize/?client_id={clientId}&redirect_uri={redirectUrl}&response_type=code";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
            request.AllowAutoRedirect = false;
            string redirUrl = String.Empty;
            using (HttpWebResponse response = (HttpWebResponse) request.GetResponse())
            {
                int status = (int)response.StatusCode; // 302 Found
                redirUrl = response.Headers[HttpResponseHeader.Location]; // And here I'm getting my old uri
            }

            return Json(redirUrl, JsonRequestBehavior.AllowGet);
        }
        catch (Exception e)
        {
            return Json(e.Message, JsonRequestBehavior.AllowGet);
        }
    }

Results in browser

1 个答案:

答案 0 :(得分:0)

  

auth在MVC中的工作方式是,当您还没有登录并尝试时   访问一个安全的页面,它会抛出401异常。然后MVC抓住了这一点   异常并将用户重定向到登录页面(即302)   你看到了)

Here您可以获得有关您问题的更多信息