.NET 4.7 连接字符串格式的用户机密

Con*_*nko 9 .net asp.net connection-string web-config asp-net-config-builders

我已经挖掘了几个小时并不断提出有关 .NET Core 的信息,但几乎没有关于 .NET 4.7 完整框架的任何信息。我想出了如何将 User Secrets 添加到我的 Web API 解决方案的主项目中。我得到了基本的 secrets.xml 文件,我需要在其中存储我的数据库用户名和密码或我的连接字符串。我找到的每篇文章都在讨论您需要对 web.config 进行的更改。然而,在secrets.xml 文件中没有显示如何处理我的连接字符串,如何格式化它。我可以创建一个名称/值对,但这似乎没有任何作用,我的应用程序无法连接到数据库。

我的 Web.config 中有这个:

  <configBuilders>
    <builders>
    <add name="Secrets" userSecretsId="5c65f7eb-a7e1-46cc-bff4-a526678005f2" type="Microsoft.Configuration.ConfigurationBuilders.UserSecretsConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.UserSecrets, Version=1.0.0.0, Culture=neutral" /></builders>
  </configBuilders>

  <connectionStrings configBuilders="Secrets">
    <add name="ShopAPDbConnectionString" connectionString="" providerName="System.Data.SqlClient" />
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

我的 secrets.xml 看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <secrets ver="1.0">
    <secret name="ShopAPDbConnectionString" value="Server=SQLDEV01;Database=ShopAP; Integrated Security=True;" />
  </secrets>
</root>
Run Code Online (Sandbox Code Playgroud)

如何正确格式化并使其正常工作?

Gre*_*ens 5

这是我能够基于https://github.com/aspnet/MicrosoftConfigurationBuilders开始工作的内容

网页配置

<configuration>
    <configSections>
        <section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false" />
    </configSections>
    <configBuilders>
        <builders>
            <add name="Secrets" userSecretsFile="~/../../../SecretsTest/secrets.xml" mode="Greedy" type="Microsoft.Configuration.ConfigurationBuilders.UserSecretsConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.UserSecrets, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            <add name="Json" jsonFile="${JSONConfigFileB}" optional="true" type="Microsoft.Configuration.ConfigurationBuilders.SimpleJsonConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Json, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        </builders>
    </configBuilders>
    <!--...-->
    <appSettings configBuilders="Secrets">
        <!--...-->
    </appSettings>
    <!--...-->
    <connectionStrings configBuilders="Json">
        <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="dummy.value.required" />
    </connectionStrings>
    <!--...-->
</configuration>
Run Code Online (Sandbox Code Playgroud)

秘密.xml

<?xml version="1.0" encoding="utf-8" ?>
<root>
  <secrets ver="1.0">
    <secret name="usersecret1" value="dogodog" />
    <secret name="usersecret2" value="secretbar" />
    <secret name="JSONConfigFileB" value="C://Users//xxx//Documents//xxx//xxx//SecretsTest//settings.json" />
  </secrets>
</root>
Run Code Online (Sandbox Code Playgroud)

设置.json

{
  "DefaultConnection": "Server=666.66.666.6;Database=BigToe;User ID=FireBall;Password=BunniesAreSoft",
}
Run Code Online (Sandbox Code Playgroud)


小智 -1

我正在尝试做同样的事情,但不幸的是我认为这仅适用于 .Net Framework/Web.config 时的 appSettings。