在我通过身份验证后,Authorizer.IsAuthorized返回false

时间:2011-01-10 13:36:31

标签: c# facebook

本周末我刚刚开始使用Facebook SDK。我正在尝试将Facebook整合到一个网站中。我按照样本和文档进行了Facebook登录按钮并快速显示“面孔”(漂亮的工具包)。

<fb:login-button autologoutlink="true" perm="email"  show-faces="true" width="200" max-rows="1"></fb:login-button>

我想检查用户是否已经过身份验证(通过Facebook)。这与我在许多样本中看到的没什么不同。我遇到的问题是,在我的Page_Load中,authorizer.IsAuthorized即使在我进行身份验证后也会返回False(我的个人资料图片也会显示)。有什么东西我不见了吗?

protected void Page_Load(object sender, EventArgs e)
{

    try
    { 
        Facebook.FacebookApp app = new Facebook.FacebookApp();

        Facebook.Web.Authorizer authorizer = new Facebook.Web.Authorizer(app);

        if (authorizer.IsAuthorized())
        {

        }
        else 
        {

        }
    }
    catch (Exception ex)
    {
    }
}

1 个答案:

答案 0 :(得分:2)

我使用了4.1.1版本的Facebook C#SDK,直到遇到同样的问题。 然后我下载了Version 4.2.1并删除了任何Authorizer.Perms。

FacebookApp fbApp = new FacebookApp(access_token);
Authorizer fbAuth = new Authorizer(fbApp);
fbAuth.IsAuthorized();// returns true

问题解决了。

原因是,即使您在Facebook上授权申请,UserId也会变成0。 他们解决了。现在,当您使用FacebookApp(access_token)构造函数时,它将从中获取UserId 的access_token。