这是处理中间件身份验证重定向逻辑的好方法吗?

时间:2018-09-11 11:16:49

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

我想问一下这种在中间件级别处理重定向的方法是否可行,或者如何“使其正常运行”,因为尽管它在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);
}

1 个答案:

答案 0 :(得分:0)

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