sách gpt4 ai đã đi

c# - 如何将 Azure MSI AccessToken 添加到 EF6 DbContext 以连接 Azure SQL PaaS

In lại 作者:行者123 更新时间:2023-12-03 04:59:29 26 4
mua khóa gpt4 Nike

通过 MVC 和 EF6 代码优先方法,我能够集成 Azure MSI token 并执行 CRUD 操作,但如何执行迁移(必须将 token 注入(inject) DBContext):

连接字符串: nhập mô tả hình ảnh ở đây

为了执行 CRUD 查询,我使用旧版 ADO.NET 样式查询,如下所示,它可以工作: nhập mô tả hình ảnh ở đây

获取 MSI: nhập mô tả hình ảnh ở đây为了运行迁移,如何将 Azure MSI AccessToken 传递到 DbContext 构造函数中。 nhập mô tả hình ảnh ở đây

对于 dbcontext,我必须使用提供程序名称定义单独的连接字符串。 nhập mô tả hình ảnh ở đây

1 Câu trả lời

您需要在 DI 中进行设置:

启动.cs

    public void ConfigureServices(IServiceCollection services)
{
//code ignored for simplicity
services.AddDbContext();

services.AddTransient();
}

数据库上下文

public partial class AzureProvider: DbContext
{
public IConfiguration Configuration { get; }
public IDBAuthTokenService authTokenService { get; set; }

public AzureProvider(IConfiguration configuration, IDBAuthTokenService tokenService, DbContextOptions options)
: base(options)
{
Configuration = configuration;
authTokenService = tokenService;
}

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
SqlConnection connection = new SqlConnection();
connection.ConnectionString = Configuration.GetConnectionString("defaultConnection");
connection.AccessToken = authTokenService.GetToken().Result;

optionsBuilder.UseSqlServer(connection);
}
}


public class AzureSqlAuthTokenService : IDBAuthTokenService
{
public async Task GetToken()
{
AzureServiceTokenProvider provider = new AzureServiceTokenProvider();
var token = await provider.GetAccessTokenAsync("https://database.windows.net/");

return token;
}
}

EF Core Connection to Azure SQL with Managed Identity

关于c# - 如何将 Azure MSI AccessToken 添加到 EF6 DbContext 以连接 Azure SQL PaaS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61505880/

26 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com