是否可以覆盖Facebook C#SDK中的CookieSupport配置?

时间:2011-01-10 22:28:15

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

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

我曾计划(并且仍然希望)创建一个画布Facebook应用程序作为主要应用程序的区域。问题是canvas应用程序需要关闭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>

它似乎对已经授权应用程序的用户进行身份验证。但是,尚未授权的用户未通过身份验证(他们没有看到权限对话框)。

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

2 个答案:

答案 0 :(得分:2)

即使您无法通过特定于区域的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);

答案 1 :(得分:1)

这在ASP.NET MVC3 RC2和Facebook C#SDK 4.1.1之间出现了问题。有关详细信息,请参阅http://facebooksdk.codeplex.com/workitem/5794

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