ProtectKeysWithAzureKeyVault
没有使用Azure KeyVault
从.net 4.7.2.
提取密钥。但它在.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
答案 0 :(得分:0)
正如article所说,mongoose
方法仅适用于asp.net core 2.1和2.2 。因此它将在.net4.7.2中不起作用。
答案 1 :(得分:0)
我可以在创建解决方案时使用AspNetCore和指向.NetFramework的框架来解决此问题。
通过这种安排,我可以将.AspNetCore函数与.Net 4.7.2程序集一起使用,以实现向后兼容性。
并使用常规的.NetCore中间件功能进行数据保护,如下所示
services.AddDataProtection()
.PersistKeysToAzureBlobStorage(container, blobName)
.ProtectKeysWithAzureKeyVault("KeyUri","ClientId", "ClientSecret")
.SetApplicationName("Name");