Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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
FaceBookFilter无止境重定向_Facebook_Asp.net Mvc 4 - Fatal编程技术网

FaceBookFilter无止境重定向

FaceBookFilter无止境重定向,facebook,asp.net-mvc-4,Facebook,Asp.net Mvc 4,我正在尝试将facebook登录添加到我的应用程序中。在这方面,我使用了以下代码片段: [FacebookAuthorize] public ActionResult About() { ViewBag.Message = "Your app description page."; return View(); } 我注册了一个过滤器FacebookAuthorizeFilter 当我导航到/主页/关于我得到的是一个无休止的重定

我正在尝试将facebook登录添加到我的应用程序中。在这方面,我使用了以下代码片段:

    [FacebookAuthorize]
    public ActionResult About()
    {
        ViewBag.Message = "Your app description page.";

        return View();
    }
我注册了一个过滤器FacebookAuthorizeFilter

当我导航到/主页/关于我得到的是一个无休止的重定向到

/Home/About?code=AQAPoxl1J-.......
如果我只使用ASP.NET MVC4项目模板中提供的OAuth,我可以使用facebook登录


我遗漏了什么?

经过数小时的调试、反思和源代码分析,我得出结论,FaceBookAuthorizationAttributeFaceBookAuthorizationFilter只能在Facebook画布应用程序中有意义地使用。

我深入研究了FaceBookAuthorization过滤器代码。该过滤器不适用于非画布应用程序的原因是,在该过滤器的OnAuthorization方法中,该方法依赖于用户重定向回您的应用程序时,POST Requeset中存在Facebook的签名请求。如果签名的_请求从不存在,筛选器将继续重定向:

…代码省略

        if (signedRequest == null || String.IsNullOrEmpty(userId) || String.IsNullOrEmpty(accessToken))
        {
            // Cannot obtain user information from signed_request, redirect to Facebook OAuth dialog.
            string redirectUrl = GetRedirectUrl(request);
            Uri loginUrl = client.GetLoginUrl(redirectUrl, _config.AppId, null);
            filterContext.Result = CreateRedirectResult(loginUrl);
        }
…代码省略


另一种方法是创建一个类似的过滤器,检查代码查询字符串参数是否存在。获得代码后,您可以使用应用程序的appId和appSecret将代码交换为访问令牌。获得访问令牌后,您可以确定用户授予了哪些权限,并进行适当的处理。

我遇到了同样的问题。你还记得为什么会这样吗?