Asp.net core 如何在.net Identity中创建注册审核/批准流程

Asp.net core 如何在.net Identity中创建注册审核/批准流程,asp.net-core,asp.net-identity,Asp.net Core,Asp.net Identity,我正在寻找一种在人们注册我的应用程序时实施审查流程的方法 我使用带有身份的.NETCore,并使用AzureAD(OpenIdConnect)、社交和基本用户名和密码作为身份验证源 如果有人从所属组织的Azure AD租户(例如bob)登录_teacher@teachcorp.com使用AzureAD,我会自动注册它们,并立即为它们提供访问权限 如果这是来自不同认可学校的教师,例如。sara@betterskool.com然后他们也会被注册,但不会被访问,只是得到一个个人资料 然后我会让管理员批

我正在寻找一种在人们注册我的应用程序时实施审查流程的方法

我使用带有身份的.NETCore,并使用AzureAD(OpenIdConnect)、社交和基本用户名和密码作为身份验证源

如果有人从所属组织的Azure AD租户(例如bob)登录_teacher@teachcorp.com使用AzureAD,我会自动注册它们,并立即为它们提供访问权限

如果这是来自不同认可学校的教师,例如。sara@betterskool.com然后他们也会被注册,但不会被访问,只是得到一个个人资料

然后我会让管理员批准他们的访问权限

当我希望能够将教师分配给班级,但不允许他们访问时(例如,在他们完成安全检查之前),这非常有用

还有一种情况是,根据人的类型,他们被分配了一个特定的身份类别。e、 老师、学生、家长。这驱动了某些业务逻辑

另一个挑战是,我目前有很多非访问用户,比如系统中的学生,他们来自IdentityUser,所以只看像IsActive这样的东西有点痛苦

我认为有几个选择,例如

  • 我可以创建一个invite类型的方法,创建一个invite票证并发送一封电子邮件,然后使用该票证在注册时自动为他们提供适当的访问权限

  • 可以使用角色或声明从Azure AD控制访问。这将适用于组织中的所有人,只要Azure广告被用作真相的来源,这对我的Azure广告组织中的用户来说是好的

  • 我可以在用户上添加一个状态字段,该字段可用于驱动简单的业务流程,例如,它们在注册时是“供批准的”。其中管理员收到新用户通知,并显示“供批准”用户的屏幕


  • 有什么建议吗?

    到目前为止,您尝试了什么?它是在前面提到的广告用户登录时实施的;如果他们没有现有配置文件,则会创建该配置文件,但会将其设置为非活动。我还可以通过系统创建用户,并根据身份框架向他们发送电子邮件进行登录。我有自定义SP来更改管理员可以执行的类型。它比任何东西都笨重。我的问题实际上是关于设计而不是实现,因为这些代码非常重要,所以在我继续创建工作流之前,最好先看看人们做了什么并给出反馈。我更喜欢使用用于权限控制的声明和角色。请参阅