Asp.net MVC 标识.限制身份验证的逻辑



假设,我有两个模型:

class Customer {
    public GUID CustomerID { get; set; }
    public IEnumerable<User> SubscribedUsers { get; set; }
    //other fields
}

class User {
    public GUID UserID { get; set; }
    //other fields
}

我想使用 ASP.NET 身份实现 BL 以限制身份验证:如果用户在订阅用户中 - 否则授予访问权限 - 拒绝。

我不要求你为我实现它。只要给我最佳实践,我该怎么做,以及我可以在哪里使用这个业务逻辑的包装......

我想我必须实现自定义OAuthAuthorizationServerProvider,是吗?

我认为最简单的方法是添加新的声明(https://learn.microsoft.com/en-us/aspnet/core/security/authorization/claims(。将其称为 SubscribedOnly 并将此声明添加到指定用户(如何在 ASP.NET 标识中添加声明(

一般来说,在您尝试覆盖某些内容之前,我会尝试找到一种内置的可能性来解决您的问题。

授权逻辑将放置在控制器中。您可以将此属性 [授权] 放在控制器的顶部(这意味着每个 ActionMethod 仅适用于登录用户(或应保护访问的每个 ActionMethod 之上。

对于广泛的实现,使用此属性非常简单明了!!

如果你正在寻找一个好的资源来理解身份或定制它,我会推荐John Attens博客:http://johnatten.com/?s=identity

相关内容

  • 没有找到相关文章

最新更新