自定义授权过滤器以检查电子邮件确认和资源所有权



我想要一个像[Verified]这样的自定义授权过滤器来检查用户是否已通过电子邮件确认,这是我的User类(IsEmailConfirmed(的属性
我已经阅读了中有关授权的文档。NET核心,但不确定正确的方法应该是什么。

此外,我希望有另一个过滤器来检查经过身份验证的用户是否是他试图更新/删除的资源的所有者。我的所有实体都有一个CreatedBy属性,所以我必须对照登录的用户进行检查。

哪些授权类型(角色、声明、策略等(最适合每个场景?

当有第三方提供索赔值时,通常会使用索赔。在您的情况下,这将不适用。

您可以同时使用"角色"one_answers"策略",但是,对于第一个场景,"角色"是最容易实现的。您可以创建一个类似VerifiedUser的角色,并在验证电子邮件时将其分配给用户。如果这是唯一的要求,那么角色就是最好的方法。

对于第二种情况,策略是实现的最佳方式,因为它需要DB调用来获取资源并确定用户是否可以访问该资源。由于无论如何,您将实现一个策略,因此您可以在策略模型本身中实现电子邮件验证,从而消除角色方法。

最新更新