如何在http触发器azure函数应用中添加自定义启动类

Azure http触发功能应用程序未随启动一起提供。我想实现一种Azure AD身份验证,该身份验证添加了 microsoft.AspNetCore.Builder UseAuthentication 方法来验证令牌以验证用户身份。

当前Http触发器直接点击Run方法。应该有一些中间件逻辑来添加服务和配置

启动课程

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");
       }
   }

请帮助。

gg85806539 回答:如何在http触发器azure函数应用中添加自定义启动类

Azure函数默认情况下没有Startup类。您可以使用IWebJobStartup添加服务,但不能添加自定义中间件。

,

您可以[assembly: WebJobsStartup(typeof(MyNamespace.Startup))]注册和配置依赖项注入绑定。请参阅此article

[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...
        }
    }
}
本文链接:https://www.f2er.com/3126006.html

大家都在问