Azure Webapp - Azure. Net SDK - Настройка ограничений IP-адреса сайта - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь использовать SDK Azure. Net для получения и управления ресурсами в веб-приложении.

В частности, я sh задаю ограничения IP-адреса службы, как описано здесь https://docs.microsoft.com/en-us/azure/app-service/app-service-ip-restrictions#programmatic -процедуры-ограничения-доступа-правила но им нужно манипулировать через SDK. Я понимаю, что ресурсы generi c могут быть лучшим вариантом для этого?

У меня есть следующий код, в котором я могу получить информацию о веб-сайте, однако затрудняюсь определить, как определить идентификатор ресурса дочерних ресурсов. получить список ресурсов

            var credentials = new AzureCredentials(servicePrincipal, tenantId, AzureEnvironment.AzureGlobalCloud);
            IAzure azure = Azure.Authenticate(credentials).WithSubscription(subscriptionId);


            IWebApp webapp = servicePlan.Manager.WebApps.List().First();
IGenericResource grWebsiteByName = webapp.Manager.ResourceManager.GenericResources.GetById(" "/subscriptions/xxx-xxx-xxx/resourceGroups/MyResourceGroup/providers/Microsoft.Web/sites/MyFirstAzureWebsite-xxx");

1 Ответ

1 голос
/ 22 апреля 2020

Вы можете использовать SiteConfigResourceInner.IpSecurityRestrictions, чтобы установить ограничения IP-безопасности для веб-приложения. Приведенный ниже код используется для установки ограничения IP. И вы могли бы следовать этой статье , чтобы получить более подробную информацию.

foreach (var webApp in await azure.WithSubscription(subscription.SubscriptionId).WebApps.ListByResourceGroupAsync(resourceGroup.Name))
{
    SiteConfigResourceInner siteConfigResourceInner = await webSiteManagementClient.WebApps.GetConfigurationAsync(resourceGroup.Name, webApp.Name);
    siteConfigResourceInner.IpSecurityRestrictions.Add(new IpSecurityRestriction("0.0.0.0", "0.0.0.0", "allow"));
    webApp.Inner.SiteConfig = new SiteConfig();

    foreach (PropertyInfo propertyInfo in webApp.Inner.SiteConfig.GetType().GetProperties())
    {
        var value = siteConfigResourceInner.GetType().GetProperty(propertyInfo.Name).GetValue(siteConfigResourceInner, null);
        propertyInfo.SetValue(webApp.Inner.SiteConfig, siteConfigResourceInner.GetType().GetProperty(propertyInfo.Name).GetValue(siteConfigResourceInner));
    }
}
...