2010-07-20 69 views
0

我有一个网站,我与Facebook整合(通过FBML - 的JavaScript API)。ASP.NET跨域饼干和Facebook连接

我已经安装在Facebook上的应用程序按正常,指定“连接网址”是我的网站的域名。

但是,我的应用程序在同一网站的IIS中有多个绑定

如:

www.bar.com.au

foo.com.au

的结构域是完全不同的,在任何名字没有关系 - 因此正则表达式规则是不可能的(即基本域)。由于本地化和市场营销的结合,这些领域变得不同。请记住,这些域名已融入到已经存在的网站中,换句话说,我无法更改此架构。

有没有一种方法,我可以为“连接URL”指定BOTH在ONE Facebook应用程序设置这些域的的?或者我将不得不创建多个应用程序?

当然作为绑定不在同一子域我不能使用“基础域”设置。

实际上我在我的网站大约7绑定 - 所以我宁愿没有建立独立的7个Facebook应用程序 - 因为这意味着保持7套API密钥/秘密对我的应用程序。

alt text http://www.freeimagehosting.net/uploads/268b234e2f.png

发生了什么事,当然是当foobar.com.au IM,Facebook的cookie是不可用的域。

对于此期间,我会尝试创建多个ApiKey的 - 但我想我可能会遇到的问题。我将不得不去:“如果域名是这个,请使用这个ApiKey”,然后在Graph API的每次调用中使用相同的逻辑。杂乱的东西。

所以我想我的问题不是由Facebook Connect引起的,它是由设计的HTTP Cookies性质引起的。

我怎么能轻松地访问这些cookie跨域?我需要设置一个第三个网站并指导所有cookie的逻辑到那里?

回答

0

在我目前的情况下,时间表已经阻止我做出正确的解决方案,这正是@Yuliy所强调的。

现在,我已经创建了多个Facebook应用程序。但要保持干燥,我已经提取的所有远落后公开的属性:

private static string _ApiToken_Site1, _ApiToken_Site2; 
public static string ApiToken 
{ 
    get 
    { 
     if (Site1) return _ApiToken_Site1; 
     else if (Site2) return _ApiToken_Site2; 
    } 
} 

不完全是干净的,但主要的是,我没有碰我现有的代码在所有的智慧去寻找哪些要使用的Api密钥在该属性中。

对于我们的下一个项目版本,我将废除这个,最有可能实现一个WCF/ASMX Web服务来处理来自一个地方的身份验证(即单独的Web服务在单独的域)。

0

您可以将其中一个设置为您的“Facebook身份验证”站点,并将所有FB Auth相关的流量定向到那里,然后使用大量跨站点通信技巧之一将令牌发送到原创网站?

换句话说,无论他们来自哪个网站,都会使用.foobar.com.au(例如)作为重定向URI。然后,当他们进入该网站并注意到他们来自.foo.bar.com.au时,您将他们重定向回他们来自的地方,以某种跨域方式传递访问令牌(querystring,post变种等)

+0

请您详细说明一下吗?另外请注意,即时通讯使用JavaScript API进行身份验证 - 所以我需要访问域中的cookie。 – RPM1984 2010-07-20 05:20:54

+0

是的..我真的很困惑这个答案也。你能详细说明你的意思吗?什么是*跨网站沟通技巧*? – 2010-07-22 03:42:39

+0

跨站点沟通技巧涉及使用某种机制将数据从一个站点传递到另一个站点,这是相同的原始策略应该使问题变得更加困难。一种技术是跨站点POST请求(又名表单提交)。另一个是在查询字符串中使用访问令牌进行重定向。 – Yuliy 2010-07-22 07:29:41

0

如果你想要*.foobar.com.au被允许,那么设置你的基本域foobar.com.au

+1

编辑的问题 - 域名并不总是包含Foobar。这就是当你“过度使用”代码时发生的事情,哈哈。 – RPM1984 2010-07-20 10:15:51

+0

我可以问你有多个基本域的用例吗? – daaku 2010-07-20 17:09:12

+0

我们针对不同的语言环境有我们网站的多个版本。所以在澳大利亚,我们的域名可能是australia.foo.bar.com,在美国它可能是www.foobar.com。 这些领域不会有机会 - 它们已经以这种方式销售,所以现在不能改变它们。 – RPM1984 2010-07-21 05:47:36