【发布时间】:2020-05-05 05:16:45
【问题描述】:
我正在尝试在自定义 ValidationAttribute 中访问当前用户(即来自身份的 ClaimsPrincipal),但我还没有弄清楚如何做到这一点。
public class UniqueTitleValidator : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
// var user = ?
}
}
我知道我可以从 HttpContext 访问用户(但我不知道如何访问后者)。
主要问题是我无权访问用户。当我在属性上使用自定义 ValidatorAttribute 时,当构造该属性时,用户(或 HttpContext)为空。意思是我不能将 User 交给 Validator 的构造函数。这就是为什么我想知道如何让验证器了解有关用户(和/或其声明)的一些信息。如果我可以访问任何例如验证器中的 HttpContext 或 User,我也可以获取所有其他运行时信息。我的问题可以理解吗?
【问题讨论】:
-
sub会给你用户 ID,如果你只想要 userId。
标签: c# asp.net-core asp.net-core-2.1 .net-core-2.1