c# - 即使没有 [Authorize] 属性也会调用 HandleAuthenticateAsync
问题描述
我正在使用自定义AuthenticationHandler
,只有我的一些控制器方法具有该[Authorize]
属性。我登录 Info 级别,它为任何方法调用创建一个日志条目。现在我无法区分是否有人真的尝试访问需要授权但失败的方法,或者它是否是对甚至不需要授权的方法的调用并且它失败是因为它应该这样做。
HandleAuthenticateAsync
有没有办法将它们区分开来,或者最好在不需要时阻止 MVC 调用?
解决方案
听起来您可能在滥用AuthenticationHandler
. 如果用户未能通过身份验证,您不应立即拒绝访问。如果这样做,它甚至不会到达管道中的 MVC 上下文。
除非您有意拒绝对未经身份验证的用户的任何访问,否则您应该仅以匿名用户身份进行身份验证或传递。之后会在某个时候AuthorizeAttribute
启动并检查用户是否有权访问所请求的资源。如果他未通过身份验证,则授权将拒绝该请求。
推荐阅读
- svn - 使用命令行仅列出来自 SVN 的特定类型的文件
- spring-boot - neo4j docker 容器拒绝连接
- javascript - 尝试导致循环的 window.location 或 window.location.href 重定向
- bootstrap-4 - 更新 bootstrap-year-calendar 而不重新渲染整个日历?
- inno-setup - 将 RegQueryStringValue 与 Inno Setup 6.0.0 和 HKCU 一起使用。GetPathInstalled
- blockchain - 缺少 Multichain.conf - 如何创建
- macos - csproj 文件中的 .NET 核心输出类型
- java - 尝试移动到底部时,JPanel 被压缩并消失
- html - “public_html”自动出现在 URL 中的文件夹名称之后并导致 404
- php - Microsoft Translator API v3 - PHP 使用 cURL 代替 file_get_contents