Facebook C#SDK登录永远不会结束

时间:2010-12-26 20:29:29

标签: facebook facebook-c#-sdk

我正在编写MVC 3应用程序并使用Facebook C# SDK。请检查此登录信息有什么问题:

[Authorize(Roles = "Admin")]
[FacebookAuthorize(
        LoginUrl = "https://graph.facebook.com/oauth/authorize?client_id=186437571372857&redirect_uri=http://portugalparty.com/Admin/AIndex/&scope=publish_stream,create_event,email",
        Perms = "publish_stream,create_event,email")]

问题

首先,用户输入网站登录信息,然后询问Facebook登录信息,并在必要时输入权限。

然后,在Facebook登录和权限设置后,我在我的网站和Facebook之间观看无休止的网球游戏,它永远不会停止!

有什么问题,我该怎么办?

以下是我的web.config中与此SDK相关的内容:

            

我没有写过Canvas应用程序。我只想在我的域名中的MVC应用程序中使用Facebook。   

<system.web>
<httpHandlers>
  <add verb="*" path="facebookredirect.axd"
                type="Facebook.Web.FacebookAppRedirectHttpHandler, Facebook.Web" />
</httpHandlers>

                          

有些信息,我记得:

  • 我看过用户输入上述动作一次然后我去做其他事情。在那个时刻和现在之间可能发生了许多事情。

  • 一个是我在Facebook应用设置中更改了网站网址 来自"http://portugalparty.com/Admin/Index/""http://portugalparty.com/Admin/AIndex/"。 Facebook表示可能需要几分钟时间才能在所有服务器中反映这些变化,但已经有好几个小时了!也许这不是问题。

你知道这是什么问题吗?如果你告诉我要找什么,我可以寻找更多信息。

由于

编辑:Cookie详细信息

我在我网站的另一个页面上登录并重定向了具有FacebookAuthorize属性的操作的URL,但问题仍然存在。

我查询了我网站上的Facebook cookie(portugalparty.com),并意识到了这些数据:

this.Request.Cookies[1]
{System.Web.HttpCookie}
Domain: null
Expires: {01-01-0001 00:00:00}
HasKeys: true
HttpOnly: false
Name: "fbs_186437571372857"
Path: "/"
Secure: false
Value: "\"access_token=234%7C0e147965318dff91499e702d-1270460469%7CKzr7Gp9oY1FOkT...........fsd...fUf14Eb3223457fG6fWMI&base_domain=portugalparty.com&expires=0&secret=313c9.a.sd7861&session_key=0e147965318dff91499e702d-1270460469&sig=702511b1gdfgdfgdfg23tuy587684653252354356ed25c03c989&uid=1270456469\""
Values: {%22access_token=186437571372857%257C0e1gte235318dff91499e702d-1270460469%257C324zr7Gp9oY1FOkTnU14Eb7H6fWMI&base_domain=portugalparty.com&expires=0&secret=fb196116d9dfds32jty6253456645c97861&session_key=0e1479653fsd3245221491499e702d-1270460469&sig=702511b1a35423543534f45657d25c03c989&uid=127675444429%22}

我对cookie知之甚少,但为什么域名属性设置为null?在Firefox中,我可以在Cookies窗口中看到我域中文件夹中的cookie。

为什么Expires属性设置为开始时间?我要求离线访问权限,但我想这与cookie无关,对吧?

Cookie的详细信息是否正常?

它与IIS 7有什么关系吗?

我更改了我的hosts文件,以便在本地运行MVC项目,就好像我在线一样。为了避免手动编写端口,我通过IIS运行项目(我选择“使用本地IIS Web服务器”选项。可能是因为这个吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

我认为你可能错过了身份验证的Javascript部分。当您开发连接应用程序时,FacebookAuthorize过滤器仅检查用户是否具有权限,然后将其发送到您网站上将使用Javascript SDK提示用户权限的页面。您设置为LoginUrl的URL无效。该网址应该是您网站上的/ login。然后在登录页面上使用Facebook Javascript SDK实际处理身份验证。有关详细信息,请参阅facebook文档:http://developers.facebook.com/docs/guides/web/#registration