没有web.config连接字符串的ASP.NET用户数据库

没有web.config连接字符串的ASP.NET用户数据库,asp.net,connection-string,web-config,membership-provider,Asp.net,Connection String,Web Config,Membership Provider,我想知道是否可以使用内置的ASP.NET应用程序服务(aspnet\u用户、aspnet\u角色等表),而无需在web.config中指定连接字符串 目前,我将连接字符串存储在外部,但我一直在web.config xml、各种提供者等中查找硬编码的连接字符串。这让我发疯 谢谢您可以通过重写已经存在的内置类来编写自己的提供程序,以便它从其他地方读取其连接字符串: public class MyMembershiProvider : SqlMembershiProvider { public

我想知道是否可以使用内置的ASP.NET应用程序服务(aspnet\u用户、aspnet\u角色等表),而无需在web.config中指定连接字符串

目前,我将连接字符串存储在外部,但我一直在web.config xml、各种提供者等中查找硬编码的连接字符串。这让我发疯


谢谢

您可以通过重写已经存在的内置类来编写自己的提供程序,以便它从其他地方读取其连接字符串:

public class MyMembershiProvider : SqlMembershiProvider
{
    public override void Initialize(string name, NameValueCollection config)
    {
        config["connectionString"] = "what ever you want";

        base.Initialize(name, config);
    }
}

请注意,“硬编码”和“web.config中的数据”这两个概念是相互排斥的。硬编码意味着信息存储在实际代码中,需要重新编译才能更改。将数据放入配置文件是避免“硬编码”信息的方法。只是语义;)谢谢你的反馈。我要换个说法。我想说的是,我不喜欢应用程序服务“自动”将连接字符串添加到各种配置文件中。嘿,谢谢你。这仍然意味着应用程序将根据它所使用的是web.config还是app.config来查找不同的配置文件。除此之外,我还有一些单元测试,它们似乎在使用自己的连接字符串。LINQ到SQL在一些配置文件中构建了连接字符串——我删除了这些。目前我主要关心的是asp net数据提供程序。@vikp:那么您想最小化应用程序中使用的连接字符串的数量吗?您可以指定的不是
connectionString
,而是
connectionStringName
,这样它将从Web.config/connectionStrings节点读取相应的连接字符串。Рад помочь! :)@vikp:您还可以使用特殊类来保存(管理)连接字符串。我这样做
public static类数据库{public static SqlConnection GetConnection(){}}
,它保存连接字符串或从Web.config或任何其他地方读取连接字符串,以获得延迟回复。他不在。是的,我希望尽量减少存储连接字符串的位置数量。我不太喜欢web.config或app.config。在我看来,在幕后为你做的事情太多了,我不喜欢。我将使用一个helper类,它将从加密的XML配置中读取连接字符串。希望从加密的xml配置文件读取数据的开销不会太大。谢谢!