我正在尝试将托管为Azure Web App的Identity Server实例配置为使用托管服务身份(https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-connect-msi)连接到数据库。
在撰写本文上面的链接时,EF Core不支持SQL Server连接的访问令牌。看来,当前预览版的2.2版已对此进行了更改。
当前,我的配置存储设置如下:
.AddConfigurationStore(options =>
{
options.ConfigureDbContext = b =>
{
b.UseSqlServer(
connectionString,
sql => { sql.MigrationsAssembly(migrationsAssembly); }
);
};
})
使用EF Core 2.2预览软件包,我将如何与上述链接等效地添加访问令牌值?
public MyDatabaseContext(SqlConnection conn) : base(conn, true)
{
conn.ConnectionString = WebConfigurationManager.ConnectionStrings["MyDbConnection"].ConnectionString;
// DataSource != LocalDB means app is running in Azure with the SQLDB connection string you configured
if(conn.DataSource != "(localdb)\\MSSQLLocalDB")
conn.AccessToken = (new AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/").Result;
Database.SetInitializer<MyDatabaseContext>(null);
}
乍一看,看来我必须等待IdentityServer4.EntityFramework软件包来支持它?
答案 0 :(得分:0)
我有一个类似的问题,
尝试接受DbConnection的UseSqlServer的重载,并向其传递带有令牌集的SqlConnection。
对我有用