首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Audit.NET动态获取数据库凭据

Audit.NET动态获取数据库凭据
EN

Stack Overflow用户
提问于 2020-10-02 09:00:20
回答 1查看 319关注 0票数 2

我们在我们的Audit.NET核心项目中使用Asp.Net库来记录用户操作。最近,我们决定使用哈希科普库来安全地存储和获取秘密,包括数据库凭据。保险库引擎自动旋转数据库凭据的时间配置,因此静态凭证不再是一个选项。

因此,我们必须实现一个服务,该服务将服务到所需服务的当前连接字符串(我们正在使用PostgreSql)。在DB上下文中,可以使用Startup.cs中的以下代码在运行时获取连接字符串

代码语言:javascript
复制
 services.AddDbContext<AppDbContext>((serviceProvider, options) =>
        {
            var databaseCredentialsProvider = serviceProvider.GetRequiredService<IDbConnectionStringProvider>();
            var connectionString = databaseCredentialsProvider.GetConnectionString();
            options.UseNpgsql(connectionString);
        });

但是,关于Audit.NET配置,它似乎只能设置静态凭据。我们在Startup.cs中使用以下代码来配置Audit.NET。

代码语言:javascript
复制
Audit.Core.Configuration.Setup()
            .UsePostgreSql(config => config
                    .ConnectionString(Configuration.GetConnectionString(""))
                    .Schema("")
                    .TableName("")
                    .IdColumnName("")
                    .DataColumn("", DataType.JSONB)
                    .LastUpdatedColumnName("");
            );

我查看了UsePostgreSql的源代码--它只设置了一次凭据,所以不能使用这个扩展方法。

是否有任何方法配置Audit.NET以动态获取数据库凭据?那么,我应该实现自定义的UsePostgreSql提供程序吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-04 23:26:16

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

代码语言:javascript
复制
Audit.Core.Configuration.Setup()
    .UsePostgreSql(config => config
        .ConnectionString(_ => serviceProvider.GetRequiredService<IDbConnectionStringProvider>().GetConnectionString())
        .Schema("")
        .TableName("")
        .IdColumnName("")
        .DataColumn("", DataType.JSONB)
        .LastUpdatedColumnName("");
    );
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64168845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档