我正在使用自定义 AuthenticationHandler
,并且只有我的一些 Controller 方法具有 [Authorize]
属性。我登录信息级别,它为任何 方法调用创建一个日志条目。现在我无法区分是否有人真的尝试访问需要授权的方法但失败了,或者它是否调用了一个甚至不需要授权的方法并且失败了,因为它应该这样做。
有没有办法区分它们,或者最好是让 MVC 在不需要时调用 HandleAuthenticateAsync
?
最佳答案
听起来您可能误用了 AuthenticationHandler
。如果用户身份验证失败,您不应该立即拒绝访问。如果这样做,它甚至不会到达管道中的 MVC 上下文。
除非您有意拒绝对未经身份验证的用户的任何访问,否则您应该只进行身份验证或以匿名用户身份通过。之后在某个时候 AuthorizeAttribute
将启动并检查用户是否有权访问所请求的资源。如果他没有通过身份验证,授权将拒绝该请求。
关于c# - 即使没有 [Authorize] 属性也会调用 HandleAuthenticateAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54256023/