Asp.net mvc身份。限制身份验证的逻辑

时间:2017-06-09 09:04:40

标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-identity

假设我有两个模型:

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以限制授权:如果用户在SubscribedUsers中 - Access被授予else - 被拒绝。

我不要求你为我实施它。只要给我最好的实践,我该怎样才能做到这一点,以及我可以在哪里讨论这种业务逻辑...

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

1 个答案:

答案 0 :(得分:0)

我认为最简单的方法是添加新的声明(https://docs.microsoft.com/en-us/aspnet/core/security/authorization/claims)。称之为SubscribedOnly并将此声明添加到指定用户(How to add claims in ASP.NET Identity

总的来说,在尝试覆盖某些内容之前,我会尝试找到解决问题的内置方法。

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

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

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