簡體   English   中英

如何在http觸發器azure ZC1C425268E68385D14AB5074C17A9應用程序中添加自定義啟動class

[英]How to add custom startup class in http trigger azure function app

Azure http 觸發器 function 應用程序沒有啟動。 我想實現 azure AD 身份驗證,它添加了Microsoft.AspNetCore.BuilderUseAuthentication方法來驗證令牌並對用戶進行身份驗證。

目前 Http 觸發器直接命中 Run 方法。應該有一些中間件邏輯來添加服務和配置

啟動 Class

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

請幫忙。

Azure function 默認沒有Startup class。 您可以使用IWebJobStartup添加服務,但不能添加自定義中間件。

您可以[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...
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM