2

我有问题

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

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

问题是WebSecurity.InitializeDatabaseConnection采用字符串 connectionStringName并且当我传入我的ConnectionStringName以获取InitializeDatabaseConnection时,它​​只在 web.config 中查找相应的值。

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

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

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

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

4

1 回答 1

2

您需要使用另一个重载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);
于 2014-05-30T15:03:55.413 回答