c# - 即使没有 [Authorize] 属性也会调用 HandleAuthenticateAsync

标签 c# asp.net-core-mvc authorize-attribute

我正在使用自定义 AuthenticationHandler,并且只有我的一些 Controller 方法具有 [Authorize] 属性。我登录信息级别,它为任何 方法调用创建一个日志条目。现在我无法区分是否有人真的尝试访问需要授权的方法但失败了,或者它是否调用了一个甚至不需要授权的方法并且失败了,因为它应该这样做。

有没有办法区分它们,或者最好是让 MVC 在不需要时调用 HandleAuthenticateAsync

最佳答案

听起来您可能误用了 AuthenticationHandler。如果用户身份验证失败,您不应该立即拒绝访问。如果这样做,它甚至不会到达管道中的 MVC 上下文。

除非您有意拒绝对未经身份验证的用户的任何访问,否则您应该只进行身份验证或以匿名用户身份通过​​。之后在某个时候 AuthorizeAttribute 将启动并检查用户是否有权访问所请求的资源。如果他没有通过身份验证,授权将拒绝该请求。

关于c# - 即使没有 [Authorize] 属性也会调用 HandleAuthenticateAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54256023/

相关文章:

IIS 随机重启 Dotnet 核心应用

c# - 如何编写 Web Api 单元测试,我应该从 UserManager 获取信息

c# - 在 Main 中使用 Keyboard.IsKeyDown() 时出现 System.InvalidOperationException

c# - 获取 VS 2010 中执行查询的历史记录?

c# - 如何覆盖 ASP.NET Core Identity 的密码策略

.net - 授权过滤器与操作过滤器

Javascript - 单击按钮时,如果未经过身份验证,则重定向到登录页面

c# - 参数类型对象不可分配给 System.Func<object> 错误

c# - 使用 JSON 正文内容参数调用 HTTP GET

c# - 在 MVC 程序中调用 Web API