我如何在Asp.Net中间件中引发错误

汤姆·萨法迪

我正在使用自定义中间件来检查每个请求的标头中的租户,如下所示:

public TenantInfoMiddleware(RequestDelegate next)
{
    _next = next;
}

public async Task InvokeAsync(HttpContext context)
{
    TenantInfoService tenantInfoService = context.RequestServices.GetRequiredService<TenantInfoService>();

    // Get tenant from request header
    var tenantName = context.Request.Headers["Tenant"];

    if (!string.IsNullOrEmpty(tenantName))
        tenantInfoService.SetTenant(tenantName);
    else
        tenantInfoService.SetTenant(null); // Throw 401 error here

    // Call the next delegate/middleware in the pipeline
    await _next(context);
}

在上面的代码中,我想在管道中抛出401错误。我该怎么做?

约翰·H

感谢您提出的意见,以澄清您要做什么。您的代码最终看起来像这样:

public async Task InvokeAsync(HttpContext context)
{
    TenantInfoService tenantInfoService = context.RequestServices.GetRequiredService<TenantInfoService>();

    // Get tenant from request header
    var tenantName = context.Request.Headers["Tenant"];

    // Check for tenant
    if (string.IsNullOrEmpty(tenantName))
    {
        context.Response.Clear();
        context.Response.StatusCode = (int)StatusCodes.Status401Unauthorized;
        return;
    }
    
    tenantInfoService.SetTenant(tenantName);

    await _next(context);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET Core 3.1中的自定义错误处理中间件?

来自分类Dev

如何在ASP.NET 5中使用基于IAppBuilder的Owin中间件

来自分类Dev

ASP .NET Core 中间件中的异步进度?

来自分类Dev

为什么我的错误处理程序不能处理异步中间件引发的异常?

来自分类Dev

通过中间件管道播种数据库引发异常 asp.net core

来自分类Dev

我们如何在应用程序的ASP.NET Core中拥有像架构这样的中间件?

来自分类Dev

Asp.net核心Blazor服务器端3.0中的中间件重定向错误?

来自分类Dev

退出当前的中间件链而不会引发错误

来自分类Dev

如何在.Net Core中间件中获取当前子域?

来自分类Dev

如何在中间件.Net Core Web API中获取当前的User / ClaimsPrincipal

来自分类Dev

如何在.Net Core中间件中获取当前子域?

来自分类Dev

如何在Express上添加404错误的中间件

来自分类Dev

如何在Bash中引发错误?

来自分类Dev

替换ASP.NET Core 1.0中间件中的响应流

来自分类Dev

如何在Laravel的中间件中获取Route

来自分类Dev

如何在Laravel测试中禁用选定的中间件

来自分类Dev

cookie会话中间件如何在expressjs中工作?

来自分类Dev

如何在scrapy(Python)中间件中实现并发

来自分类Dev

如何在Express中间件中接收ZMQ消息?

来自分类Dev

如何在中间件Slim PHP框架中响应

来自分类Dev

如何在中间件中传递多个门?(Laravel)

来自分类Dev

如何在Strapi中间件中达到请求主体?

来自分类Dev

如何在OWIN中删除中间件?

来自分类Dev

如何在连接中向中间件添加模式?

来自分类Dev

如何在 Laravel 中对中间件进行 OR 操作

来自分类Dev

如何使用自定义异常中间件捕获ASP.NET Core(3.1)URL解析错误?

来自分类Dev

如何使 elmah.io 与 ASP.NET Core 和错误处理中间件配合良好?

来自分类Dev

了解ASP.NET 5中间件的实际用法

来自分类Dev

在ASP.Net Core中间件中调用服务/存储库方法

Related 相关文章

  1. 1

    ASP.NET Core 3.1中的自定义错误处理中间件?

  2. 2

    如何在ASP.NET 5中使用基于IAppBuilder的Owin中间件

  3. 3

    ASP .NET Core 中间件中的异步进度?

  4. 4

    为什么我的错误处理程序不能处理异步中间件引发的异常?

  5. 5

    通过中间件管道播种数据库引发异常 asp.net core

  6. 6

    我们如何在应用程序的ASP.NET Core中拥有像架构这样的中间件?

  7. 7

    Asp.net核心Blazor服务器端3.0中的中间件重定向错误?

  8. 8

    退出当前的中间件链而不会引发错误

  9. 9

    如何在.Net Core中间件中获取当前子域?

  10. 10

    如何在中间件.Net Core Web API中获取当前的User / ClaimsPrincipal

  11. 11

    如何在.Net Core中间件中获取当前子域?

  12. 12

    如何在Express上添加404错误的中间件

  13. 13

    如何在Bash中引发错误?

  14. 14

    替换ASP.NET Core 1.0中间件中的响应流

  15. 15

    如何在Laravel的中间件中获取Route

  16. 16

    如何在Laravel测试中禁用选定的中间件

  17. 17

    cookie会话中间件如何在expressjs中工作?

  18. 18

    如何在scrapy(Python)中间件中实现并发

  19. 19

    如何在Express中间件中接收ZMQ消息?

  20. 20

    如何在中间件Slim PHP框架中响应

  21. 21

    如何在中间件中传递多个门?(Laravel)

  22. 22

    如何在Strapi中间件中达到请求主体?

  23. 23

    如何在OWIN中删除中间件?

  24. 24

    如何在连接中向中间件添加模式?

  25. 25

    如何在 Laravel 中对中间件进行 OR 操作

  26. 26

    如何使用自定义异常中间件捕获ASP.NET Core(3.1)URL解析错误?

  27. 27

    如何使 elmah.io 与 ASP.NET Core 和错误处理中间件配合良好?

  28. 28

    了解ASP.NET 5中间件的实际用法

  29. 29

    在ASP.Net Core中间件中调用服务/存储库方法

热门标签

归档