Facebook API和Safari

更新和解决方案:事实证明问题是基于我用于我的开发URL的重定向,这导致浏览器将我的页面设置的所有cookie视为第三方cookie。 Facebook JS API会话cookie未设置为第三方cookie。 我正在使用Facebook身份验证的ASP.NET应用程序。为此,我将微软Facebook SDK与Facebook的Javascript API结合使用。一切都在工作,除了Safari。 Safaris默认设置是不接受第三方cookie,这导致: 我可以通过Javascript访问Facebook会话。 我无法访问Facebook会话服务器端,因为cookie从未设置并从Safari发送。 这是我与Facebook(JS)相关的客户端代码:
<div id="fb-root"></div>    
<fb:login-button>Login with Facebook</fb:login-button>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
    FB.init({ appId: 'myAppId', status: true, cookie: true, xfbml: true });
    FB.Event.subscribe('auth.login', function (response) {
       if (response.session) {
           window.location.reload(); //Results in eternal reload of page
       }
    });
</script>
这是我获取用户id服务器端(C#)的代码:
public string FacebookUserID
{
    get
    {
        FacebookSettings settings = new FacebookSettings();
        settings.AppId = "myAppId";
        settings.AppSecret = "myAppSecret";
        FacebookApp app = new FacebookApp(settings);
        Authorizer auth = new Authorizer(app);

        return (auth.IsAuthorized()) ? app.Session.UserId : null;
    }
}
我想我不是唯一一个遇到同样问题的人,但我搜索过Facebook开发者论坛并且在这里找不到解决方案。它实际上更像是Safari问题,而不是Facebook特有的问题。 我一直在考虑通过GET / POST /我自己的cookie将用户ID发回服务器,但这是一个丑陋的解决方案和潜在的安全问题。 有任何想法吗?     
已邀请:
事实证明问题是基于我用于我的开发URL的重定向,这导致浏览器将我的页面设置的所有cookie视为第三方cookie。 Facebook JS API会话cookie未设置为第三方cookie。     

要回复问题请先登录注册