首页 > 解决方案 > Log4net ADOAppender 使用 Azure MSI 连接而不是普通连接字符串

问题描述

嗨,我将此发布到 log4net 用户组,但我认为我也会将其发布在这里。

我正在开发一个需要 Azure MSI 从 Azure PaaS 连接到 Azure SQL 的项目。想知道 log4net 的 ADOAppender 是否已经支持这种已经连接的机制。据我所知,它没有,但我想我会在扩展 log4net 之前询问社区。

若要支持 MSI 应用程序无法单独使用连接字符串连接到数据库,它们需要从 Azure 获取访问令牌,然后在 SqlConnection 对象上设置 AccessToken 属性。就像下面的代码正在做的那样:

private static SqlConnection GetSqlConnection()
        {
            var sqlConnection = new SqlConnection(GetConnectionString());

            if (sqlConnection.DataSource != "(localdb)\\MSSQLLocalDB")
                sqlConnection.AccessToken = new AzureServiceTokenProvider()
                    .GetAccessTokenAsync("https://database.windows.net/").Result;

            return sqlConnection;
        }

此代码使用两个 Microsoft nuget 包来获取访问令牌。

谢谢!

标签: log4netlog4net-appenderazure-managed-identity

解决方案


推荐阅读