IdentityServer3 - 如何在 PreAuthenticateAsync 中获取部分身份?

IdentityServer3 - how to get partial identity in PreAuthenticateAsync?

问题很自我描述。有方法:

await this.owinContext.Environment.GetIdentityServerPartialLoginAsync();

但在 PreAuthenticateAsync 方法中它得到 null 结果。作为一种实现部分身份的方法,我使用重定向到我的一个控制器并返回,但是有更好的方法吗?

正如方法名称所暗示的那样,这会在任何身份验证发生之前发生,因此它不会为您提供任何部分登录信息。您应该在 PostAuthenticateAsync 中进行该调用,它将在任何身份验证步骤之后进行调用,您可以在其中使用适当的构造函数创建 context.AuthenticateResult,该构造函数将为您提供新的部分重定向或完整结果。