c# - 用户只能在管理员批准后注册
问题描述
我在 c# 中设置了一个新的 mvc5 项目,其中我使用了 Identity Framework 和 Open ID。这意味着新用户可以通过第三方注册,即谷歌、Facebook、微软。
所以这部分就完成了。现在我想限制用户,这意味着当用户尝试注册时,会将批准发送给管理员。如果管理员只接受,则用户可以注册。有没有办法做到这一点?
解决方案
查看授权策略/基于角色的安全性的组合。当任何用户通过第三方注册时,处理注册的代码会为新用户保存所有相关记录,并赋予他们“未经批准的用户”的角色。您可以创建用户可以查看的一组控制器/视图等(可能是个人资料页面,带有通用信息的登录页面,或者可能只是一个免责声明页面,告诉他们他们需要等待被批准)。
从那里当管理员批准用户时,处理批准的代码将角色更改为“批准的用户”。然后,这允许他们访问整个站点。
我不知道您是使用带有 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
推荐阅读
- html - 范围限制可能的输入而不隐藏
- asp.net-core - 在服务器端 Blazor 中成功完成外部外部提供程序质询后登录用户
- xpath - 使用 Google 表格进行网页抓取。IMPORTXML 函数需要正确的 xpath
- reactjs - 无法使用 react typed.js 回调说明
- java - 如何使用 Spring 将请求转发到另一个微服务?
- java - 如何在某个值之后检索字符串中的所有记录
- mysql - Python/Django 'utf-8' 编解码器无法解码位置 0 的字节 0xb3:无效的起始字节
- python - 大于数字的唯一总和
- django - 我的 Django 中间件没有按应有的方式工作
- sql - 是否有“JOIN”查询来显示与经理不在同一地点工作的员工的名字和姓氏