【问题标题】:Is it possible to override the CookieSupport configuration in the Facebook C# SDK?是否可以覆盖 Facebook C# SDK 中的 CookieSupport 配置?
【发布时间】:2011-01-10 22:28:15
【问题描述】:

我有一个 ASP.NET MVC 3 应用程序,它使用 Facebook C# SDK 进行了一些 Facebook 集成,并启用了 cookie 支持。

我曾计划(并且仍然希望)创建一个画布 Facebook 应用程序作为主应用程序的一个区域。问题是画布应用程序需要关闭 cookie 支持。无论如何要覆盖该区域中的此设置,还是我被卡住了?

2011 年 11 月 1 日更新 我在 web.config 中使用了 location 节点来覆盖 cookieSupport 设置。

 <location path="facebook">
  <facebookSettings
   appSecret="***"
   appId="***"
   cookieSupport="false" />

  <canvasSettings
   canvasPageUrl="http://apps.facebook.com/***/"
   canvasUrl="http://www.***.co.uk/facebook/"
   authorizeCancelUrl="http://apps.facebook.com/***/home/cancel" />
 </location>

它似乎可以对已经授权该应用程序的用户进行身份验证,而不会出现问题。但是,尚未获得授权的用户不会通过身份验证(他们看不到权限对话框)。

我要强调的是,当 Area 'facebook' 的结构被放入它自己的应用程序中时,配置会按预期工作。

丰富

【问题讨论】:

  • 看起来我已经能够使用 web.config 中的位置节点来完成它。进一步的测试将证实这一点。
  • 希望有人能帮我解决这个问题,我真的不想创建第二个应用程序。
  • 看起来这可能与 MVC3 相关。
  • 看起来这个问题的某些方面正在作为 Facebook C# SDK 和 MVC3 RC2 之间的错误处理。 facebooksdk.codeplex.com/Thread/View.aspx?ThreadId=240858

标签: asp.net-mvc facebook facebook-c#-sdk areas


【解决方案1】:

即使您不能通过特定区域的 web.config 文件来完成,您也可以随时跳过 web.config 中的设置并手动设置它们:

    FacebookSettings facebookSettings = new FacebookSettings
    {
        AppId = yourAppId,
        AppSecret = yourSecret,
        BaseDomain = yourDomain,
        CookieSupport = false,
        MaxRetries = 2,
        RetryDelay = 500
    };
    var app = new FacebookApp(facebookSettings);

【讨论】:

  • 我想我正试图让 SDK 做一些它原本不打算做的事情。如果我创建一个新项目,授权将按预期工作。如果我将相同的设置应用于现有项目的某个区域,则该区域不会尝试授权。
【解决方案2】:

结果证明这是 ASP.NET MVC3 RC2 和 Facebook C# SDK 4.1.1 之间的问题。详情请见http://facebooksdk.codeplex.com/workitem/5794

该问题已在 SDK 4.2.1 版中得到解决。

丰富

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 2012-07-01
    • 2019-08-21
    • 1970-01-01
    相关资源
    最近更新 更多