-1

我在 c# 中设置了一个新的 mvc5 项目,其中我使用了 Identity Framework 和 Open ID。这意味着新用户可以通过第三方注册,即谷歌、Facebook、微软。

所以这部分就完成了。现在我想限制用户,这意味着当用户尝试注册时,会将批准发送给管理员。如果管理员只接受,则用户可以注册。有没有办法做到这一点?

4

1 回答 1

2

查看授权策略/基于角色的安全性的组合。当任何用户通过第三方注册时,处理注册的代码会为新用户保存所有相关记录,并赋予他们“未经批准的用户”的角色。您可以创建用户可以查看的一组控制器/视图等(可能是个人资料页面,带有通用信息的登录页面,或者可能只是一个免责声明页面,告诉他们他们需要等待被批准)。

从那里当管理员批准用户时,处理批准的代码将角色更改为“批准的用户”。然后,这允许他们访问整个站点。

我不知道您是使用带有 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

于 2019-06-10T14:35:40.923 回答