C# 使用C从Azure中的授权密钥功能级别授权中检索密钥#

C# 使用C从Azure中的授权密钥功能级别授权中检索密钥#,c#,azure,key-management,C#,Azure,Key Management,我需要通过代码获取密钥,而不是通过门户。为此,我在Google中找到了RESTAPI。 这是指向的链接,但要执行此操作,我们需要进行身份验证 我们必须只用C语言来开发所有这些 关于该问题,请参考以下代码 #install Microsoft.Azure.Management.ResourceManager.Fluent and Microsoft.Azure.Management.Fluent string clientId = "client id"; string sec

我需要通过代码获取密钥,而不是通过门户。为此,我在Google中找到了RESTAPI。 这是指向的链接,但要执行此操作,我们需要进行身份验证


我们必须只用C语言来开发所有这些

关于该问题,请参考以下代码

 #install Microsoft.Azure.Management.ResourceManager.Fluent and Microsoft.Azure.Management.Fluent    
string clientId = "client id";
     string secret = "secret key";
     string tenant = "tenant id";
     var functionName ="functionName";
     var webFunctionAppName = "functionApp name";
     string resourceGroup = "resource group name";
     var credentials = new AzureCredentials(new ServicePrincipalLoginInformation { ClientId = clientId, ClientSecret = secret}, tenant, AzureEnvironment.AzureGlobalCloud);
     var azure = Azure
              .Configure()
              .Authenticate(credentials)
              .WithDefaultSubscription();

     var webFunctionApp = azure.AppServices.FunctionApps.GetByResourceGroup(resourceGroup, webFunctionAppName);
     var ftpUsername = webFunctionApp.GetPublishingProfile().FtpUsername;
     var username = ftpUsername.Split('\\').ToList()[1];
     var password = webFunctionApp.GetPublishingProfile().FtpPassword;
     var base64Auth = Convert.ToBase64String(Encoding.Default.GetBytes($"{username}:{password}"));
     var apiUrl = new Uri($"https://{webFunctionAppName}.scm.azurewebsites.net/api");
     var siteUrl = new Uri($"https://{webFunctionAppName}.azurewebsites.net");
     string JWT;
     using (var client = new HttpClient())
      {
         client.DefaultRequestHeaders.Add("Authorization", $"Basic {base64Auth}");

         var result = client.GetAsync($"{apiUrl}/functions/admin/token").Result;
         JWT = result.Content.ReadAsStringAsync().Result.Trim('"'); //get  JWT for call funtion key
       }
     using (var client = new HttpClient())
     {
        client.DefaultRequestHeaders.Add("Authorization", "Bearer " + JWT);
        var key = client.GetAsync($"{siteUrl}/admin/functions/{functionName}/keys").Result.Content.ReadAsStringAsync().Result;
      }

此外,,您还可以参考。

对象id为“9671c613-52b4-42d4-b260-6FA0C7AB6BF”的客户机“9671c613-52b4-42d4-b260-6fa0c7ab6bff”没有执行操作“Microsoft.Web/sites/read'over scope'/subscriptions/1ab4f7c1-3d23-419b-9d6c-cae2423ca16d/resourceGroups/conceptone/providers/Microsoft.Web/sites/imsfap”的权限。有人可以吗在这方面帮助我?字符串clientId=“8e636aed-a0c6-47a1-af77-137f96e262b8”;string secret=“g5sL6PDyNY4a65Ely7pXXpO/UqUwVvIKBEaTTdEuRY4=”;字符串tenant=“2d4d44fe-dba2-49bc-8447-2f0602a1bfe1”;var functionName=“Ims”;var webFunctionAppName=“imsfap”;字符串resourceGroup=“conceptone”;字符串SubscriptionId=“1ab4f7c1-3d23-419b-9d6c-cae2423ca16d”;这些是我传递的参数相同的代码您提供的代码与我使用的代码相同您是否为您的帐户分配了角色?有关更多详细信息,请参阅。