用户只有在管理员批准后才能注册

时间:2019-06-10 14:22:25

标签: c# asp.net-mvc openid email-confirmation

我正在c#中建立一个新的mvc5项目,其中我正在使用Identity Framework和Open ID。这意味着新用户可以通过第三方注册,例如Google,Facebook,Microsoft。

因此,这部分完成了。现在我要限制用户,这意味着当用户将要尝试注册批准时,将发送给管理员。如果管理员仅接受,则用户可以注册。有什么办法吗?

1 个答案:

答案 0 :(得分:2)

签出授权策略/基于角色的安全性的组合。当任何用户通过第三方注册时,处理注册的代码将为新用户保留所有相关记录,并赋予他们“未批准用户”的角色。您可以创建一组用户可以查看的Controllers / Views等(也许是个人资料页面,具有常规信息的登录页面,或者只是一个免责声明页面,告诉他们需要等待批准)。

当管理员批准用户时,从那里开始,处理批准的代码将角色更改为“已批准用户”。然后,他们可以访问整个网站。

我无法确定您是否正在使用具有mvc 5或Asp.Net核心的经典Asp.Net,但是两者的概念相似(除了身份验证策略内容)。

基本上,您要装饰要使用的控制器/动作:

[Authorize("ApprovedUser")]
public class MyProtectedController
{
}

[Authorize("UnapprovedUser")]
public class MyUnprotectedController
{
}

有关更多信息: https://docs.microsoft.com/en-us/aspnet/core/security/authorization/roles?view=aspnetcore-2.2