【问题标题】:WebSecurity.InitializeDatabaseConnection and ServiceConfiguration, AzureWebSecurity.InitializeDatabaseConnection 和 ServiceConfiguration,Azure
【发布时间】:2013-10-21 08:53:55
【问题描述】:

制作有问题

WebSecurity.InitializeDatabaseConnection(string connectionStringName, string userTableName, string userIdColumn, string userNameColumn, bool autoCreateTables)

在 Windows azure 中使用 ServiceConfiguration.[env] 进行配置。

问题是 WebSecurity.InitializeDatabaseConnection 需要 string connectionStringName 并且当我为 InitializeDatabaseConnection 传入我的 connectionStringName 时> 方法它只在 web.config 中查找相应的值。

我知道如何从connectionStringName获取连接字符串,我可以使用

  var connectionString =  CloudConfigurationManager.GetSetting("connectionStringName");

但是,InitializeDatabaseConnection 需要参数 connectionStringName 而不是 connectionString,因此我需要它在 ServiceConfiguration 中查找相应的值给定参数(connectionStringName)。

所以我的问题是: 是否可以将 ServiceConfiguration.[env].cscfg 用于 WebSecurity.InitializeDatabaseConnection 并让它从给定名称中查找 ServiceConfiguration 中的值? 如果是这样,如何让它发挥作用?

【问题讨论】:

  • CloudConfigurationManager.GetSetting 将默认为 we.config 如果该值不在 ServiceConfiguration.[env].cscfg - 尝试仅使用 web.config 中的 connectionStringName。

标签: c# azure web-config connection-string


【解决方案1】:

您需要使用InitializeDatabaseConnection 的另一个重载并传递一个提供者名称:

public static void InitializeDatabaseConnection(
            string connectionString, 
            string providerName, 
            string userTableName, 
            string userIdColumn, 
            string userNameColumn, 
            bool autoCreateTables)

例如:

WebSecurity.InitializeDatabaseConnection(RoleEnvironment.GetConfigurationSettingValue("connectionStringName"), "System.Data.SqlClient", "UserProfile", "UserId", "UserName", true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多