小编Ser*_*gey的帖子

如果特定参数不满足要求,则限制授权或减少结果

通过软件描述大学时我遇到了身份验证问题。

以前我只有一个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)

c# .net-core asp.net-core

5
推荐指数
1
解决办法
679
查看次数

字符串运算符+源代码在哪里?

当我检查以下代码string s = "a" + 1是否有效时。

在工具提示中,Visual Studio 显示它使用string operator + (string left, object right)在此输入图像描述

无论如何,在String 的源代码中没有提到它,因为只有==!=

我绝对可以假设它使用类似于 的东西left + right.ToString(),但真的想检查它的真实源代码。

PS C# 源代码中没有它,这让我的兴趣无限增加:)

.net c#

5
推荐指数
1
解决办法
1056
查看次数

XPath 选择元素,如果其他不存在

在某些情况下,我们需要选择input[@class="some"]元素,但前提div[@class="other"]是不存在。两个元素没有共同的父元素body,当然,除了。

一旦我们的环境结果集中在 XPath 上,我们只需要 XPath 解决方案。

UPD:如果元素存在,则不应返回任何内容

xpath

2
推荐指数
1
解决办法
1832
查看次数

标签 统计

c# ×2

.net ×1

.net-core ×1

asp.net-core ×1

xpath ×1