我有一个ASP.NET Core应用程序托管在Azure虚拟机中的IIS中。我调用扩展方法来将它们保存到Azure中,但没有任何内容存储在那里,应用程序似乎仍然使用本地密钥。我按照这里的例子:http://intellitect.com/staying-logged-across-azure-app-service-swap/。事实上,当我在控制台应用程序中测试代码时,持久性工作正常。但是,当我使用此代码运行ASP.NET Core应用程序时,没有任何事情会持续到Azure。任何想法为什么?不保留给Azure的数据保护密钥
0
A
回答
1
我将上面的回答标记为答案,因为它是正确的并且是重要的一点。但是,对于这个问题的真正答案是关键数据不会因为应用程序启动并且您调用PersistKeysToAzureBlobStorage(或任何其他PersistToXXX方法)而持久。这只是为了配置数据保护。你可以说这是“懒惰”。关键数据将与您的代码一起生成或框架首先调用Protect/Unprotect,如下所示:
var protector = provider.CreateProtector("Some Purpose");
var enc = protector.Protect("Hello World");
...
protector.Unprotect(enc);
2
请检查注册MVC服务和DataProtection服务的顺序。注册DataProtection服务必须在注册MVC服务之前。以下代码供您参考。
// Add DataProtection Service
if (storageUrl != null && sasToken != null && containerName != null && applicationName != null && blobName != null)
{
// Create the new Storage URI
Uri storageUri = new Uri($"{storageUrl}{sasToken}");
//Create the blob client object.
CloudBlobClient blobClient = new CloudBlobClient(storageUri);
//Get a reference to a container to use for the sample code, and create it if it does not exist.
CloudBlobContainer container = blobClient.GetContainerReference(containerName);
container.CreateIfNotExists();
services.AddDataProtection()
.SetApplicationName(applicationName)
.PersistKeysToAzureBlobStorage(container, blobName);
}
// Add framework services.
services.AddMvc();
相关问题
- 1. 保护SSH密钥
- 2. 密码/密钥保护
- 3. 如何在Azure密钥保管库中保护Blob存储访问密钥
- 4. swift3 - 如何保护密钥
- 5. keytool如何保护密钥?
- 6. 保护对称密钥
- 7. API密钥保留为空
- 8. 保护C#中的加密密钥#
- 9. 保护秘密数据不受损害
- 10. 在android中保护你的api密钥
- 11. 保护密钥文件中的
- 12. Azure AD B2C中的密码保护B2C
- 13. 保护用于客户端处理的数据库密钥
- 14. 保护Graphite的数据:url密钥或代理?
- 15. Azure网站上的数据保护/加密?
- 16. 保护与RSA密钥的许可证密钥
- 17. 删除密钥的值并保留密钥
- 18. 远程存储密码保护私钥
- 19. Android密钥库如何受到保护?
- 20. 保护Google Maps JavaScript API密钥
- 21. VBA:保护整张纸并保留范围不受保护
- 22. 将AWS密钥保留在github上
- 23. 保留的IP地址(经典)分配给SQL数据库Azure
- 24. Azure密钥保管库了解
- 25. 保存德比数据的密钥
- 26. Web服务API密钥和Ajax - 保护密钥
- 27. EnvelopedCms解密不适用于Azure密钥保管库
- 28. 密码保护SQL数据库文件
- 29. 加密和保护Android数据
- 30. 保护密码字段在数据库