首页 > 解决方案 > 自定义 AuthenticationHandler 返回成功结果,但我被重定向到登录页面

问题描述

我有一个具有典型身份验证设置的 .net core 2.2 mvc 网站。

我后来添加了一个 api 端点(返回 json),它不应该通过 cookie 身份验证,而是通过自定义身份验证令牌进行身份验证。

我在请求的授权标头中将我的令牌作为“EMF abcdfsdfgsdfgsdfg”传递,其中 EMF 是身份验证方案。

我创建了一个身份验证处理程序并注册了它services.AddAuthentication().AddScheme<...>("EMF", null);

[Authorize(AuthenticationSchemes = "EMF")]在我的控制器上做了一个动作。

即使 AuthenticationHandler 成功返回结果,.net 核心也会将我重定向到登录页面而不是控制器操作。

当我删除 Authorize 属性并再次发布相同的请求时,将调用该操作但未对用户进行身份验证。

到底是怎么回事?当处理程序返回成功响应时,为什么用户未通过身份验证?

标签: c#authenticationasp.net-coreasp.net-core-2.0asp.net-core-2.2

解决方案


推荐阅读