连接字符串中指定的用户名在运行时被替换

Specified username in connection string gets replaced at runtime

我有一个网站项目作为入口点并在那里定义了连接字符串:

"ConnectionStrings": {
    "DataPlaygroundConnection": "Server=DataPlayhouse;Database=BusinessHandshake;User ID=bhuser1;Password=bh@12345;MultipleActiveResultSets=True;Connect Timeout=360;App=Company - Portal - Staging"
}

我最近才开始遇到 运行 时出现 Login failed for user 'bhuser1' 错误的问题。但是凭据正在工作,因为我可以使用任何数据库管理器 (SSMS) 连接到数据库。然后我添加了 Serilog 以了解从 Program.cs

抛出异常时发生了什么

添加Serilog后,发现异常块:

10/20/2020 07:54:49 +04:00 Application Starting.
10/20/2020 07:54:49 +04:00 Using an in-memory repository. Keys will not be persisted to storage.
10/20/2020 07:54:49 +04:00 Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits.
10/20/2020 07:54:49 +04:00 No XML encryptor configured. Key {a012bed6-42e0-475d-a11d-44ae3a5599a9} may be persisted to storage in unencrypted form.
10/20/2020 07:54:58 +04:00 An error occurred using the connection to database '"BusinessHandshake"' on server '"DataPlayhouse"'.
10/20/2020 07:54:58 +04:00 An exception occurred while iterating over the results of a query for context type '"Folio.Infrastructure.Data.Contexts.PlaygroundBiContext"'."
""Microsoft.Data.SqlClient.SqlException (0x80131904): Login failed for user 'bhuser1'.

json 文件中的凭据是正确的,我可以在 Azure Studio 中使用相同的凭据连接到数据库。

我在上下文中没有任何自定义代码:

public partial class PlayHouseContext : DbContext
{

    public PlayHouseContext()
    {
    }

    public PlayHouseContext(DbContextOptions<PlayHouseContext> options)
        : base(options)
    {
    }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        if (!optionsBuilder.IsConfigured)
        {
            optionsBuilder.UseSqlServer("");
        }
    }
}

我在我的本地开发机器上有类似的错误:SqlException: Login failed for user 'bhuser1'.

在我的开发机器上,凭据是正确的,我可以使用 SSMS 轻松访问所述数据库和其中的所有元素。

这个我看不懂。

谢谢@DaleK。

Trusted_Connection表示windows认证。我不得不删除 并在 appsettings.Development.json 中也做同样的事情