【发布时间】:2019-07-21 22:35:08
【问题描述】:
我正在尝试将https://docs.microsoft.com/en-us/azure/key-vault/tutorial-net-create-vault-azure-web-app 的示例代码转换为 VB.net,并使用它来访问我存储在 Azure Key Vault 中的机密。我在http://converter.telerik.com/ 使用了转换器。
转换后的代码给出错误提示“Delegate 'KeyVaultClient.AuthenticationCallback' 需要 'AddressOf' 表达式或 lambda 表达式作为其构造函数的唯一参数。”
这是转换后的代码:
Imports Microsoft.Azure.KeyVault
Imports Microsoft.Azure.Services.AppAuthentication
Imports Microsoft.Azure.KeyVault.Models
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim azureServiceTokenProvider As AzureServiceTokenProvider = New AzureServiceTokenProvider
Dim keyVaultClient As KeyVaultClient = New KeyVaultClient(New KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback))
Dim secret As String = keyVaultClient.GetSecretAsync("https://<YourKeyVaultName>.vault.azure.net/secrets/AppSecret").ConfigureAwait(False)
TextBox1.Text = secret.Value
End Sub
我想知道访问我的密钥保管库中的机密所需的代码。我已授予我的应用程序在 Azure 门户中访问保管库的所有权限,并且我在 VS2017 中使用我的 Azure 帐户登录,我已经在此工作了 3 天,找不到任何用于访问当前密钥保管库的 VB 示例。
【问题讨论】:
-
首先,您应该使用的唯一代码转换器是 Tangible Software Solutions 的 Instant VB。大多数人在转换短 sn-ps 时都需要免费版本。
-
至于问题,如果您花时间学习VB到必要的程度,错误消息确实为您提供了您需要的所有信息。错误消息告诉您问题出在哪里(
KeyVaultClient.AuthenticationCallback构造函数),它提供的关键字包括“delegate”、AddressOf和“lambda 表达式”。你做了哪些努力来了解这些? -
我可以从这篇帖子stackoverflow.com/questions/57169283/setting-up-azure-key-vault 看到您已经找到了您的问题的答案,您愿意与其他人分享您的答案吗?
-
虽然我似乎找到了答案,但答案还不完整。在另一个论坛上,我确实找到了对上述代码的正确翻译。但是,我还不能找回我的秘密,因此我还不能断定我有正确的答案。您在 stackoverflow.com/questions/57169283/setting-up-azure-key-vault 上看到的代码中仍然可能需要进行调整,以使其正常工作。但是,我确实怀疑现在的问题在于 Azure 上的设置,而不是我的应用程序中的代码。
标签: vb.net azure-keyvault c#-to-vb.net