通过软件描述大学时我遇到了身份验证问题。
以前我只有一个Headmaster角色,可以执行和访问任何操作。但现在,我需要整合一个Teacher角色。
角色Teacher应该可以选择访问某些功能,这些功能很容易受到Authorize属性的限制。但在某些情况下,我想减少该角色允许访问的数据数量,例如不是宇宙中的所有学生,而是那些学习的人Teacher's Subject。
所有这些都已在 EF 中进行了描述(例如教师与学科、学科与学生的关系)。但现在我很难拒绝(返回403)不允许访问的科目或学生的请求Teacher。
我考虑了我的服务的规范模式用法,因此使用规范的过滤器将减少生成的数据,因为它有助于减少数据量,有时甚至没有数据,但无助于完全拒绝请求。
您能否为我提供一个链接或架构想法来满足对上述两个用例的期望?
// entity models
class Subject {
...
public Teacher Teacher { get; set; }
public List<Students> { get; set; }
...
}
class Teacher {
...
public List<Subject> Subjects { get; set; }
...
}
class Student {
...
public List<Subject> StudiedSubjects {get; set; }
...
}
// first use-case I want to solve
public ActionResult<List<Student>> GetStudent()
{
// …Run Code Online (Sandbox Code Playgroud)