C# 如何使用Fluent NHibernate从自定义DriverConnectionProvider读取配置值?
我目前正在一个使用NHibernate的项目中实现MSI for Sql Server,为此我创建了一个自定义DriverConnectionProvider。问题是,我现在需要设置访问令牌,要获取访问令牌,我需要从配置文件中读取客户机id。是否有方法将参数传递到自定义DriverConnectionProvider 这就是我所拥有的:C# 如何使用Fluent NHibernate从自定义DriverConnectionProvider读取配置值?,c#,sql-server,fluent-nhibernate,azure-managed-identity,C#,Sql Server,Fluent Nhibernate,Azure Managed Identity,我目前正在一个使用NHibernate的项目中实现MSI for Sql Server,为此我创建了一个自定义DriverConnectionProvider。问题是,我现在需要设置访问令牌,要获取访问令牌,我需要从配置文件中读取客户机id。是否有方法将参数传递到自定义DriverConnectionProvider 这就是我所拥有的: public class MsiConnectionProvider : DriverConnectionProvider { public overr
public class MsiConnectionProvider : DriverConnectionProvider
{
public override DbConnection GetConnection(string connectionString)
{
var credential = new DefaultAzureCredential(
new DefaultAzureCredentialOptions
{
ManagedIdentityClientId = "Hard Coded Client Id" //I want to set this using a config variable
});
var tokenReq = new TokenRequestContext(new[] { "Hard Coded Resource Id" }); //I want to set this using a config variable
var accessToken = credential.GetToken(tokenReq);
var conn = (SqlConnection)Driver.CreateConnection();
try
{
conn.AccessToken = accessToken.Token;
conn.ConnectionString = ConnectionString;
conn.Open();
}
catch (Exception)
{
conn.Dispose();
throw;
}
return conn;
}
}
假设自定义DriverConnectionProvider在设置后自动调用。所以我没有找到传递这些值的方法。有什么想法吗
提前感谢。请参阅以下内容:我认为您可以定义一个函数来读取配置文件。在创建连接之前,您可以运行函数来获取配置。作为一个快速解决方案,我只是将客户机id添加为静态属性,然后在调用提供程序之前进行设置。我不喜欢这个,但它满足了我的需要:/