我正在将Facebook C#SDK用于我在Windows Azure中托管的ASP.NET MVC Facebook Canvas应用程序。
我目前在appSecret
中有Facebook C#SDK特定配置设置(appId
,web.config
等),但我想将它们转移到服务配置文件中,我可以在Azure中从分段移动到生产时更改设置。
(如何)可以做到这一点?现在我正在使用CanvasAuthorize
自动从web.config
读取的属性。
[CanvasAuthorize(Permissions = FacebookPermissions.ReadStreamPermission)]
public ActionResult Login()
{
return RedirectToAction("Authenticate"); // Logged in, proceed with authentication
}
答案 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。这也是保持它的原因。