Как добавить пользовательский класс автозагрузки в приложение-функцию триггера http azure - PullRequest
0 голосов
/ 11 ноября 2019

Приложения с функцией запуска Azure http не запускаются при запуске. Я хочу реализовать аутентификацию Azure AD, которая добавляет UseAuthentication метод Microsoft.AspNetCore.Builder для проверки токена и проверки подлинности пользователя.

В настоящее время триггер Http попадает вЗапустите метод напрямую. Должна быть некоторая промежуточная логика для добавления сервисов и конфигураций

Класс запуска

public void ConfigureServices(IServiceCollection services)
{            services.AddAuthentication(AzureADDefaults.BearerAuthenticationScheme)
               .AddAzureADBearer(options => Configuration.Bind("ConfigName", options));
}


public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory logger)
{
   app.UseAuthentication();
}

после реализации ниже Атрибут Authorize должен проверить токен и разрешить/ запретить пользователю доступ.

public static class Function1
   {
       [Authorize]
       [FunctionName("Function1")]
       public static async Task<IActionResult> Run(
           [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
           ILogger log)
       {
           log.LogInformation("C# HTTP trigger function processed a request.");

           return (ActionResult)new OkObjectResult($"Hello");
       }
   }

Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2019

Вы можете [assembly: WebJobsStartup(typeof(MyNamespace.Startup))] зарегистрировать и настроить привязки внедрения зависимостей. См. Эту статью .

[assembly: WebJobsStartup(typeof(MyNamespace.MyStartup))]
namespace MyNamespace
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            return (ActionResult)new OkObjectResult($"Hello");
        }
    }
    public class MyStartup : IWebJobsStartup
    {
        public void Configure(IWebJobsBuilder builder)
        {
        builder.Services...
        }
    }
}
0 голосов
/ 11 ноября 2019

Функция Azure по умолчанию не имеет класса Startup. Вы можете добавить службы, используя IWebJobStartup, но не можете добавить пользовательское промежуточное ПО.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...