了解SubFolders中的Web.config层次结构

时间:2015-01-20 15:34:47

标签: c# asp.net web-config

在我的Visual Studio Web项目中,根目录是Web.config

Web.config文件定义了用于基本网络身份验证的网络用户密码

<configuration>
    <appSettings>
        <add key="User" value="victoria"/>
        <add key="Pwd" value="i12kissU"/>
    </appSettings>
</configuration>

我的项目使用母版页,其中包含几种常用方法。这是我使用上面的应用程序设置的地方:

母版页

using System.Net;
using System.Web.Configuration;
//
public CredentialCache GetNetworkCredentials(string url) {
    var item = new CredentialCache();
    var username = WebConfigurationManager.AppSettings["User"];
    var password = WebConfigurationManager.AppSettings["Pwd"];
    item.Add(new Uri(url), "Basic", new NetworkCredential(username, password));
    return item;
}

在每个 SubFolder 中,项目具有访问SQL Server上不同数据库的例程。因此,每个 SubFolder 都有自己的Web.config文件,其中包含这些表的唯一数据库连接字符串。

<configuration>
    <connectionStrings>
        <add name="SubFolderN" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=SubFolderN;User Id=UserN;Password=PwdN" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

这让我可以为每个 SubFolder 连接字符串

SubFolderN:

ConnectionString =
  WebConfigurationManager.ConnectionStrings["SubFolderN"].ConnectionString;

到目前为止,每个 SubFolder 都会成功从母版页中提取UserPwd值。

“从Root继承”是否是Web.config文件的保证属性?

到目前为止,结果似乎很有希望。

但是,我想与在社区中了解的人确认我所看到的不是浏览器缓存的结果。我需要这种情况持续发生。

具有权威参考的链接会很棒。

1 个答案:

答案 0 :(得分:2)

我想我在这里找到了答案:

10 Things ASP.NET Developers Should Know About Web.config Inheritance and Overrides

具体来说,它说的是ASP.NET Web.config:

  

特定ASP.NET应用程序的Web.config文件位于应用程序的根目录中,包含适用于Web应用程序的设置,并通过其分支中的所有子目录向下继承。

image