如何解决动态用户和角色的具有身份成员身份的自定义身份验证和授权
我们有一个Asp.Net mvc项目,我们要在其中使用 Identity 身份验证和授权的两个表( Teacher 和 Department ) strong>。
在模型的实体下方
部门实体
public class Departement
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Departement_ID { get; set; }
public string Departement_Name { get; set; }
}
教师资格
public class Teacher
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Teacher_ID { get; set; }
public string Teacher_Name { get; set; }
public int? Departement_ID { get; set; }
}
我们要对这两个表应用安全性,但要知道安全性必须在每个表的表级和字段级应用,我们不希望因为用户和角色是动态的并且不是固定的,所以使用 [Authorize]属性在控制器和操作级别的代码后面应用固定的授权。
在控制器中显示所有带部门教师的动作下方
[Authorize(Roles = "members,admin")]
public async Task<IActionResult> Index()
{
List<Teacher_Departement> ilIst = new List<Teacher_Departement>();
var listData = await (from Teat in _context.Teacher
join Dept in _context.Departement on Teat.Departement_ID equals Dept.Departement_ID
orderby Teat.Teacher_ID ascending
select new
{
Teat.Teacher_ID,Teat.Teacher_Name,Dept.Departement_Name
}
).ToListAsync();
listData.ForEach(x =>
{
Teacher_Departement Obj = new Teacher_Departement();
Obj.Teacher_ID = x.Teacher_ID;
Obj.Teacher_Name = x.Teacher_Name;
Obj.Departement_Name = x.Departement_Name;
ilIst.Add(Obj);
});
return View(ilIst);
}
我们如何根据用户个人资料显示该教师列表,如果用户无权查阅此列表,则将被剥夺其咨询机会。知道用户和角色列表是动态的,它是在执行期间创建的,因此使用 [Authorize]属性是不可行的。
授权也已在每个表的属性级别上完成 ,如果未授权,应用程序必须拒绝用户修改指定的字段
私下
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。