gpt4 book ai didi

c# - Audit.NET 动态获取数据库凭据

转载 作者:行者123 更新时间:2023-12-04 08:49:05 25 4
gpt4 key购买 nike

我们正在使用 Audit.NET我们的 Asp.Net Core 项目中的库来记录用户操作。最近我们决定使用Hashicorp Vault安全地存储和获取 secret ,包括 数据库凭据 . Vault 引擎 automatically rotates database credentials在配置的时间段内,因此不再可以选择静态凭据。
因此,我们必须实现一个服务,该服务将为所需的服务提供当前连接字符串(我们正在使用 PostgreSql )。在 DB 上下文的情况下,可以在运行时使用以下代码获取连接字符串 Startup.cs :

 services.AddDbContext<AppDbContext>((serviceProvider, options) =>
{
var databaseCredentialsProvider = serviceProvider.GetRequiredService<IDbConnectionStringProvider>();
var connectionString = databaseCredentialsProvider.GetConnectionString();
options.UseNpgsql(connectionString);
});
但是,关于 Audit.NET 配置,它似乎只能设置静态凭据。我们在 中使用以下代码Startup.cs 配置 Audit.NET。
Audit.Core.Configuration.Setup()
.UsePostgreSql(config => config
.ConnectionString(Configuration.GetConnectionString(""))
.Schema("")
.TableName("")
.IdColumnName("")
.DataColumn("", DataType.JSONB)
.LastUpdatedColumnName("");
);
我查看了 的源代码使用PostgreSql - 它设置一次凭据,因此不能选择使用此扩展方法。
有没有办法配置 Audit.NET 以动态获取数据库凭据?我应该实现自定义 使用PostgreSql 供应商呢?

最佳答案

使用最新版本,您现在可以将配置值设置为函数,以便在创建审计事件时检索这些值。例如:

Audit.Core.Configuration.Setup()
.UsePostgreSql(config => config
.ConnectionString(_ => serviceProvider.GetRequiredService<IDbConnectionStringProvider>().GetConnectionString())
.Schema("")
.TableName("")
.IdColumnName("")
.DataColumn("", DataType.JSONB)
.LastUpdatedColumnName("");
);

关于c# - Audit.NET 动态获取数据库凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64168845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com