用户密码错误 (WCF):在 web.config 中未正确配置用户密码

Posted

技术标签:

【中文标题】用户密码错误 (WCF):在 web.config 中未正确配置用户密码【英文标题】:User Secret Error (WCF) : User secrets are not configured correctly in the web.config 【发布时间】:2020-07-19 14:04:57 【问题描述】:

我正在尝试学习如何使用用户机密。在上一篇文章中,我在 App Console 上应用它时遇到了一些错误。所以我决定在 WCF 项目中使用它。

当我点击项目并选择 User Secrets 时会弹出此错误:

User secrets are not configured correctly in the web.config file
check that a reference to UserSecretsConfigBuilder has been added to
the <configBuilder> <builder> section of web config

这是错误的图片:

这是我的 web.config 文件:

<?xml version="1.0" encoding="utf-8"?>
<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>
    </builders>
  </configBuilders>
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.7.2"/>
    <httpRuntime targetFramework="4.7.2"/>
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- Pour éviter la divulgation d'informations de métadonnées, définissez les valeurs ci-dessous sur false avant le déploiement -->
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <!-- Pour recevoir les détails de l'exception dans les erreurs à des fins de débogage, définissez la valeur ci-dessous sur true. Pour éviter la divulgation d'informations d'exception, définissez-la sur false avant le déploiement -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <protocolMapping>
        <add binding="basicHttpsBinding" scheme="https"/>
    </protocolMapping>    
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <!--
        Pour parcourir le répertoire racine de l'application Web lors du débogage, définissez la valeur ci-dessous sur true.
        Définissez-la sur false avant le déploiement pour ne pas divulguer d'informations du dossier de l'application Web.
      -->
    <directoryBrowse enabled="true"/>
  </system.webServer>

</configuration>

非常感谢您。

【问题讨论】:

您应该编辑您的问题并添加 .config 文件的示例。看起来它在 &lt;configBuilder&gt;&lt;builder&gt; 中丢失了一些东西 非常感谢@bradbury9 先生的建议。我编辑了帖子并添加了 web.config 文件 【参考方案1】:

这 2 个链接解释了如何在 .NET 4.7 项目中添加用户机密:

https://github.com/aspnet/MicrosoftConfigurationBuilders(导航到 UserSecretsConfigBuilder) User Secrets in .NET 4.7 connectionstrings format

TL;DR 将以下行添加到您的 web.config:

<configBuilders>
    <builders>
      <add name="Secrets" userSecretsFile="~/App_Data/secrets.xml" mode="Greedy" type="Microsoft.Configuration.ConfigurationBuilders.UserSecretsConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.UserSecrets, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </builders>
</configBuilders>

通过使用userSecretsFile 属性,您可以定义秘密文件的位置,您还可以使用带有 GUID 值(或其他东西,不必是 GUID)的 userSecretsId,然后项目将创建秘密文件在:

C:\Users\[Username]\AppData\Roaming\Microsoft\UserSecrets\[YOUR GUID OR IDENTIFIER]

如果您同时使用这两个属性,则userSecretsFile 属性将获得优先权。 在您的项目中,您可以右键单击“管理用户密码”以轻松编辑您的用户密码。

【讨论】:

这是一个很晚的回复,但是谢谢..您分享的链接非常有用:)

以上是关于用户密码错误 (WCF):在 web.config 中未正确配置用户密码的主要内容,如果未能解决你的问题,请参考以下文章

WCF Web 服务未部署在 localhost ... web.config ... 端点上

iis部署wcf服务过程

在 WCF REST Web 服务上启用 HTTPS

是否可以通过 IIS 管理器中的用户界面在 web.config ASP .Net Web 应用程序中的 <system.Servicemodel> 中查看/编辑 WCF 配置?

WCF Web 服务无法访问 Web Config 中的服务名称

WCF .net 4.0 HTTP 基本身份验证