当前位置: 首页 > 知识库问答 >
问题:

如何在超文本传输协议触发器azure函数app中添加自定义启动类

林浩漫
2023-03-14

Azure http 触发器函数应用不随启动一起提供。我想实现azure AD身份验证,它添加了Microsoft.AspNetCore.Builder的UseAuthentication方法来验证令牌并对用户进行身份验证。

目前Http触发器正在点击Run方法directly.There应该是一些中间件逻辑来添加服务和配置

创业班

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

授权属性下面的后实现应该验证令牌并允许/拒绝用户访问。

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个答案

汤昊
2023-03-14

你可以 [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...
        }
    }
}
蒙麒
2023-03-14

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

 类似资料:
  • 我在Azure function中有一个API,它使用Http触发器来接收数据并将其发送到本地应用程序。我们有用户界面前端,用户可以上传大文件大小(没有限制),这将发送数据块的API。 我知道应用程序的功能限制是100MB,我也看到处理大文件的建议是使用Blob存储。然而,对于同步流程,我们希望通过API来实现这一点(避免在中间流程中将数据存储在blob存储中)。 有没有一种方法可以通过Http触

  • 我用的是跺脚。我的javascript客户端中的js over SockJS。我正在使用连接到websocket stomp over sockJS连接有2个http请求: 请求发送至/info http升级请求 客户端发送所有cookie。我也想发送自定义头(例如XSRF头),但没有找到方法。谢谢你的帮助。

  • 我试图在Spring增加网络安全性,但我不希望过滤器适用于某些事情。java是如何实现的? 也许有更好的方法来实现这一点,因为我创建了一个自定义过滤器,但这是我唯一能想到的实例化它的方法,因为它的依赖性。 总的来说,我想做的是: 不应该通过过滤器,(POST)不应该通过过滤器,其他一切都应该通过过滤器 通过各种例子,我发现整个Spring,我能够想出这个作为一个开始,但它显然不起作用:

  • 我正在从我的角UI调用Spring引导REST服务。只要Spring Boot Rest服务作为Spring Boot应用程序执行,它就运行良好。但是一旦我将其转换为WAR文件并部署在Jboss 6.2.4服务器上,我就会得到404。我看到来自UI的REST服务调用成功,但请求JSON没有通过。在请求JSON上,我正在传递2个字符串和一个上传的excel文件。 这是我的angular UI htt

  • 使用mount库,如何在-main函数上重新加载(停止和启动)http工具包“mount state”? 我现在的代码是: 所以当我“lein run”一切正常时,但是每当我更改一个文件,并且超文本传输协议服务器停止时,命令就会停止。目前我正在做“虽然真实;做lein运行;完成”来工作,所以我想过在-main函数中添加一个无限循环,但感觉这不是正确的方法。 我该怎么做?

  • 我有一个由Python构建的API服务器。我需要一组客户端/计算机通过发出http post请求将数据发送到API服务器。 这里的数据实际上是html内容。(注意:我没有将合法数据转换为HTML/XML格式,数据本身就是我从web上收集的HTML),通常每页约200KB。我正试图通过使用串行/串行和压缩来尽可能减轻网络负载。 我正在考虑通过网络发送原始超文本标记语言。有没有类似序列化html对象的