c# - 自定义 AuthenticationHandler 返回成功结果,但我被重定向到登录页面
问题描述
我有一个具有典型身份验证设置的 .net core 2.2 mvc 网站。
我后来添加了一个 api 端点(返回 json),它不应该通过 cookie 身份验证,而是通过自定义身份验证令牌进行身份验证。
我在请求的授权标头中将我的令牌作为“EMF abcdfsdfgsdfgsdfg”传递,其中 EMF 是身份验证方案。
我创建了一个身份验证处理程序并注册了它services.AddAuthentication().AddScheme<...>("EMF", null);
我[Authorize(AuthenticationSchemes = "EMF")]
在我的控制器上做了一个动作。
即使 AuthenticationHandler 成功返回结果,.net 核心也会将我重定向到登录页面而不是控制器操作。
当我删除 Authorize 属性并再次发布相同的请求时,将调用该操作但未对用户进行身份验证。
到底是怎么回事?当处理程序返回成功响应时,为什么用户未通过身份验证?
解决方案
推荐阅读
- html - 如何将表单提交数据推送到数组
- f# - F# 额外参数 List.map
- react-native - 在 react-native 上使用钩子
- javascript - Promise 在调用时返回值而不是 Promise
- google-chrome-extension - 仅在网站的特定文件夹上执行 chrome 扩展
- visual-studio - Visual Studio 2019 和 DevOps 连接
- sql-server - 连接表时根据查询结果调整“on”语句
- c# - HTTP 错误 500.30 - ANCM 进程内启动失败 Asp.net-Core 3.1
- java - 如何从 Keycloak AuthzClient 获取其他声明
- python - 将活动节点转换为图像