未在配置文件服务上调用 IdentityServer IsActiveAsync 方法
IdentityServer IsActiveAsync method not being called on the profile service
我正在使用 IdentityServer v4 处理我的 ASP.NET 应用程序的授权,使用资源所有者流程。
我实现了 IdentityServer4.Core.Services.IProfileService
接口,它有两个方法,GetProfileDataAsync
和 IsActiveAsync
。
向令牌端点发出请求时,GetProfileDataAsync
按预期被调用。我们使用这种方法发出索赔。
但是 IsActiveAsync
方法不会被调用。我想实现这个方法来确定用户是否在我们的数据库中处于活动状态。这个方法应该在什么时候被调用?
IdentityServer 源代码(见下文)中的评论表明它应该在令牌颁发期间调用,但在请求令牌时不会调用该方法。我怀疑我遗漏了什么。任何帮助,将不胜感激。
// Summary:
// This method gets called whenever identity server needs to determine
// if the user is valid or active (e.g. if the user's account has been
// deactivated since they logged in). (e.g. during token issuance or
// validation).
Task IsActiveAsync(IsActiveContext context);
现在 IsActiveAsync
不会为资源所有者密码请求调用。我想假设是如果用户处于非活动状态,您将无法成功验证用户。
这些细节尚未确定 - 如果您对它应该如何工作有强烈的意见 - 请在 github 上打开一个问题。我们将在 8 月下旬锁定 API。
我正在使用 IdentityServer v4 处理我的 ASP.NET 应用程序的授权,使用资源所有者流程。
我实现了 IdentityServer4.Core.Services.IProfileService
接口,它有两个方法,GetProfileDataAsync
和 IsActiveAsync
。
向令牌端点发出请求时,GetProfileDataAsync
按预期被调用。我们使用这种方法发出索赔。
但是 IsActiveAsync
方法不会被调用。我想实现这个方法来确定用户是否在我们的数据库中处于活动状态。这个方法应该在什么时候被调用?
IdentityServer 源代码(见下文)中的评论表明它应该在令牌颁发期间调用,但在请求令牌时不会调用该方法。我怀疑我遗漏了什么。任何帮助,将不胜感激。
// Summary:
// This method gets called whenever identity server needs to determine
// if the user is valid or active (e.g. if the user's account has been
// deactivated since they logged in). (e.g. during token issuance or
// validation).
Task IsActiveAsync(IsActiveContext context);
现在 IsActiveAsync
不会为资源所有者密码请求调用。我想假设是如果用户处于非活动状态,您将无法成功验证用户。
这些细节尚未确定 - 如果您对它应该如何工作有强烈的意见 - 请在 github 上打开一个问题。我们将在 8 月下旬锁定 API。