我正在尝试拨打预订中的所有保管库。我使用的方法是这样的 -KeyVaultClient.AuthenticationCallback委托的参数来自哪里?
控制器
var myClient = new Microsoft.Azure.KeyVault.KeyVaultClient(new KeyVaultClient.AuthenticationCallback(Helper.GetToken));
Microsoft.Azure.KeyVault.KeyVaultCredential test = new KeyVaultCredential(new KeyVaultClient.AuthenticationCallback(Helper.GetToken));
TokenCloudCredentials tokenCredentials = new TokenCloudCredentials("xxx", test.Token);
KeyVaultManagementClient client = new KeyVaultManagementClient(tokenCredentials);
VaultListResponse response = new VaultListResponse();
助手
public static async Task<string> GetToken(string authority, string resource, string scope)
{
var clientId = ConfigurationManager.AppSettings["AuthClientId"];
var clientRedirectURI = ConfigurationManager.AppSettings["AuthClientRedirectURI"];
var context = new AuthenticationContext(authority, TokenCache.DefaultShared);
result = await context.AcquireTokenAsync(resource, clientId, new Uri(clientRedirectURI), new PlatformParameters(PromptBehavior.Always));
return result.AccessToken;
}
对于我的控制器“test.Token”始终返回null,但我不能不认为这可能从我身上不传任何东西到Helper.Token中进行测试。我知道Helper.Token基本上匹配回拨想要的内容:
public delegate Task<string> AuthenticationCallback(
string authority,
string resource,
string scope)
但是我从哪里获得权限,资源和范围? 谢谢!
在你的控制器方法上放置一个断点并检查调试器,看看它是否被正确设置 –
对不起,但我不确定你是什么意思。我弹出了断点,但只要我跳过“Microsoft.Azure.KeyVault.KeyVaultCredential test = new KeyVaultCredential(new KeyVaultClient.AuthenticationCallback(Helper.GetToken));”然后它转到下一行(TokenCredientials) - 我检查测试并将标记设置为空。 – Pikapops