DataProtectionBuilder.ProtectKeysWithAzureKeyVault在.net 4.7.



ProtectKeysWithAzureKeyVault未使用.net 4.7.2.Azure KeyVault提取密钥。但它在.netcore 2.2中运行良好

我做以下事情:

public void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Identity.Application", 
CookieName = ".AspNet.SharedCookie",
LoginPath = new PathString("/Account/Login"), 
TicketDataFormat = new AspNetTicketDataFormat(
new DataProtectorShim(
DataProtectionProvider.Create(new DirectoryInfo(@"E:SBH"), (builder) => {
builder
.ProtectKeysWithAzureKeyVault(
"https://test.vault.azure.net/keys/jwt",
"ClientID",
"ClientScret")
.PersistKeysToFileSystem(new DirectoryInfo(@"E:SBH"));
}).CreateProtector(
"Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware",
"Identity.Application",
"v2"))),
CookieManager = new ChunkingCookieManager()
});
}

代码运行时没有任何错误/异常。但没有打电话到天蓝钥匙库。

问题出在哪里?

我已经安装了这两个nuget包

  • Microsoft.Owin.Security.Interop

  • Microsoft.AspNetCore.DataProtection.AzureKeyVault

正如文章所说,AzureDataProtectionBuilderExtensions.ProtectKeysWithAzureKeyVault方法仅适用于asp.net核心2.1和2.2。因此它将在.net4.7.2中不起作用。

在创建解决方案时,我可以通过使用AspNetCore和指向.NetFramework的框架来解决这个问题。

有了这种安排,我可以将.AspNetCore函数与.Net 4.7.2程序集一起使用,以实现向后兼容性。

并使用Regular.NetCore中间件功能进行数据保护,如下面的

services.AddDataProtection()
.PersistKeysToAzureBlobStorage(container, blobName)
.ProtectKeysWithAzureKeyVault("KeyUri","ClientId", "ClientSecret")
.SetApplicationName("Name");

相关内容

  • 没有找到相关文章

最新更新