在使用应用程序启动模板创建新应用程序之后,您可能需要扩展或更改SignIn Manager的默认行为,以满足身份验证和注册流程的需要。ABP帐户模块对登录管理器使用身份管理模块,而身份管理模块使用默认的Microsoft身份登录管理器(请参阅此处)。
要编写您的自定义登录管理器,您需要扩展Microsoft身份登录管理器类并将其注册到DI容器。
本文档说明了如何针对您自己的应用程序自定义SignIn Manager。
创建一个CustomSignInManager
创建一个继承Microsoft Identity包的SignInMager的新类。
使用Volo.Abp.Identity.IdentityUser类型使SignInManager继承,而不是继承应用程序的AppUser,这一点很重要。
之后,您可以覆盖所需的任何SignIn Manager方法,并添加身份验证或注册流程所需的新方法和属性。
重写GetExternalLoginInfoAsync方法
在这种情况下,我们将覆盖GetExternalLoginInfoAsync
实现第三方身份验证时调用的方法。
重写方法的一个好方法是复制其源代码。在这种情况下,我们将使用源代码的较小修改版本,该版本显式显示了方法和属性的名称空间,以帮助更好地理解该概念。