1

我想在我的应用程序中使用 .Net 的 SqlMembershipProvider 和 SqlRoleProvider 进行用户管理。我的问题是,当应用程序启动时,它不知道任何数据库连接信息。出于安全目的,它需要从数据库服务器上运行的 WCF 服务获取此信息。因此,我需要事后建立我的会员/角色提供者。

我想我已经能够创建和添加会员提供者:

// register membership provider
var membership = new SqlMembershipProvider();
var providerValues = new NameValueCollection();
providerValues.Add("name", "sqlMembershipProvider");
providerValues.Add("applicationName", "/");
providerValues.Add("connectionStringName", "connectionStrDynamAddedToConfig");
providerValues.Add("maxInvalidPasswordAttempts", "10");
membership.Initialize("sqlMembershipProvider", providerValues);

到目前为止,我一直无法找到类似的东西来创建 RoleProvider。我可以创建提供程序,但不能将其添加到角色管理器。我是否需要创建一个自定义提供程序,在它已经初始化后可以接受一个连接字符串?

4

1 回答 1

0

我遇到了这个页面,它建议“下载ProviderToolkitSamples并修改 SQLConnectionHelper 类。具体来说,GetConnectionString 函数看起来像这样”

internal static string GetConnectionString(string specifiedConnectionString, bool lookupConnectionString, bool appLevel)
{
        if (specifiedConnectionString == null || specifiedConnectionString.Length < 1)
            return null;

        string connectionString = null;

        /////////////////////////////////////////
        // Step 1: Check <connectionStrings> config section for this connection string
        if (lookupConnectionString)
        {
            ConnectionStringSettings connObj = ConfigurationManager.ConnectionStrings[specifiedConnectionString];
            if (connObj != null)
                connectionString = connObj.ConnectionString;

            if (connectionString == null)
                return null;
        }
        else
        {
            connectionString = specifiedConnectionString;
        }

        return connectionString;
    }
}

来自 williablog.net 的文本,因为正如该页面所说,“链接会随着时间的推移而中断”

于 2010-01-22T22:28:08.880 回答