【问题标题】:ASP.NET user database without web.config connection strings没有 web.config 连接字符串的 ASP.NET 用户数据库
【发布时间】:2010-06-17 19:08:19
【问题描述】:

我想知道是否可以使用内置的 ASP.NET 应用程序服务(aspnet_user、aspnet_role 等表)而不在 web.config 中指定连接字符串。

目前我在外部存储连接字符串,但我不断在 web.config xml、各种提供程序等中找到硬编码的连接字符串。这让我发疯。

谢谢

【问题讨论】:

  • 请注意:“硬编码”和“web.config 中的数据”这两个概念是相互排斥的。硬编码意味着信息存储在实际代码中,需要重新编译才能更改。将数据放入配置文件是避免“硬编码”信息的方法。只是语义;)
  • 感谢您的反馈。我会改写自己。我想说的是,我不喜欢应用程序服务“自动”将连接字符串添加到各种配置文件中。

标签: asp.net connection-string web-config membership-provider


【解决方案1】:

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

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

        base.Initialize(name, config);
    }
}

【讨论】:

  • 嘿,谢谢你。这仍然意味着应用程序将根据它是 web.config 还是 app.config 来查找不同的配置文件。最重要的是,我有单元测试,它们似乎使用了自己的连接字符串。 LINQ to SQL 在一些配置文件中内置了连接字符串——我删除了这些。目前我主要关心的是 ASP 网络数据提供者。
  • @vikp:那么您想尽量减少应用程序中使用的连接字符串的数量吗?您可以指定不是connectionString,而是指定connectionStringName,这样它就会从Web.config/connectionStrings 节点读取适当的连接字符串。 Радпомочь! :)
  • @vikp:您也可以使用特殊类来保存(管理)您的连接字符串。我这样做。 public static class Database { public static SqlConnection GetConnection() { } } 保存您的连接字符串或从 Web.config 或其他任何地方读取它们
  • 抱歉回复晚了。不在。是的,我想尽量减少存储连接字符串的位置。我不太热衷于 web.config 或 app.config。在我看来,幕后为你做了太多事情,我不喜欢。我将使用一个辅助类,它会从加密的 XML 配置中读取连接字符串。希望从加密的 xml 配置文件中读取数据的开销不会太大。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 2015-04-25
  • 2017-07-24
  • 1970-01-01
  • 2010-11-24
  • 2016-03-26
相关资源
最近更新 更多