将Facebook C#SDK配置设置移至Azure ServiceConfiguration.cscfg

时间:2011-08-29 11:51:41

标签: azure facebook-c#-sdk

我正在将Facebook C#SDK用于我在Windows Azure中托管的ASP.NET MVC Facebook Canvas应用程序。

我目前在appSecret中有Facebook C#SDK特定配置设置(appIdweb.config等),但我想将它们转移到服务配置文件中,我可以在Azure中从分段移动到生产时更改设置。

(如何)可以做到这一点?现在我正在使用CanvasAuthorize自动从web.config读取的属性。

    [CanvasAuthorize(Permissions = FacebookPermissions.ReadStreamPermission)]
    public ActionResult Login()
    {
        return RedirectToAction("Authenticate"); // Logged in, proceed with authentication
    }

2 个答案:

答案 0 :(得分:1)

默认情况下,Facebook C#SDK会查看web.config中的配置部分。

您需要使用与此类似的代码覆盖默认的Facebook应用程序。

FacebookApplication.SetApplication(new DefaultFacebookApplication { AppId = "..", AppSecret = ".." });

设置应用程序的最佳位置是Application_Start。

您可以在https://gist.github.com/820881

结帐样本

这意味着您不依赖于web.config。您可以使用数据库,天蓝色服务配置或任何内容,具体取决于您可以从中检索设置的逻辑。

答案 1 :(得分:0)

我不确定将应用程序特定配置信息放在Azure ServiceConfiguration.csfg文件中的原因。此外,我会说这将是一个问题,而不是有助于在Azure控制面板中切换VIP 我这样做的方法是在我的(ASP.NET MVC画布页面)Visual Studio项目中有多个Web部署配置。一个用于分段,一个用于生产。

我使用Web部署中的web.config transformation functionality为Staging / Production提供不同的web.config设置。 它工作得非常顺利,只需右键单击项目,选择Deploy并选择是否要部署到登台或生产。您还可以通过这种方式处理特定的测试AppID。

编辑:我没有查看Facebook C#SDK的源代码,但我猜想web.config读取方法实际上是硬编码使用web.config。这也是保持它的原因。