首页 > 解决方案 > 使用 AbpMvcAuthorize 自定义身份验证方案

问题描述

我无法让AbpMvcAuthorize属性在我的特殊情况下工作。

我有一些自定义身份验证机制(带有 custom AuthenticationScheme),可以登录我的用户。为此,我实现了 aAuthenticationHandler<MyCustomAuthenticationOptions>并覆盖了该方法,并将其从 Module-zeroHandleAuthenticateAsync注册到方法中:AuthConfigurer.Configure

services.AddAuthentication(o => o.AddScheme("amx", b => b.HandlerType = typeof (MyCustomAuthenticationHandler)));

现在,如果我有这个:

[Authorize(AuthenticationSchemes = "amx")]
public string GetTest()
{
    return "OK";
}

并使用我的特殊 amx 标头发出请求,它正在工作,我只能在指定它时访问该方法。

如果我正在做同样的事情:

[AbpMvcAuthorize(AuthenticationSchemes = "amx")]
public string GetTest()
{
    return "OK";
}

它不再工作了,我有一个 401 Unauthorized 结果,在调试模式下,我从不输入我的 custom AuthenticationHandler。似乎该AbpMvcAuthorize属性是在我的自定义之前执行的AuthenticationHandler,或者它没有读取该AuthenticationScheme属性?

知道我做错了什么吗?

谢谢

标签: asp.net-coreaspnetboilerplate

解决方案


我在他们的 Github 上问过:https ://github.com/aspnetboilerplate/aspnetboilerplate/issues/3778

并被告知这是不可能的,因为AbpMvcAuthorize不读取AuthenticationScheme属性。我会尝试用一些策略来实现它


推荐阅读