首页 > 解决方案 > 这是处理中间件身份验证重定向逻辑的好方法吗?

问题描述

我想问这种在中间件级别处理重定向的方法是否可以,或者如何“使其以良好的方式工作”,因为尽管它可以在例如 chrome/firefox/postman 中工作,但我仍然不确定。


我的中间件调用:

public async Task Invoke(HttpContext context)
{
    if (endpointRequireAuthentication(context.Request.Path))
    {
        if (!context.User.Identity.IsAuthenticated)
        {
            context.Request.Method = "GET";
            context.Request.Path = "/Unauthorized";
        }    
    }

    await _next(context);
}

标签: c#asp.net-coreasp.net-core-mvc

解决方案


IMO,您应该使用类似IAuthorizationRequirement处理授权的东西,然后生成 401 异常并在其他端点上捕获或创建自定义异常中间件。


推荐阅读