ASPでカスタムロールベースの承認.ネットMVC


このポストでは、ASPでロールとパーミッションを実装するために使用するロジックを説明します.これは、4つのテーブルを作成しました.

データベース

  • User :このテーブルは、システムのすべてのユーザーを管理し、次の表を参照してください.

  • 役割:私たちのシステムが実装する役割、すなわち、スーパー管理者、管理者、モデレーター、スーパーユーザなどを管理します

  • 許可:このテーブルは、私たちのビジネスが必要とするすべてのアクセス許可を処理します.学生を見ることができますか.学生にメモを追加できますか.

  • PermissionDeniedByLast :このテーブルは、通常のものがパーミッションをユーザに割り当てることになるので、他の方法で動作します.私にとって、ユーザはすべての権限を持っているので、実装できないアクセス許可を追加するほうが簡単です.これは簡単です.そうでなければ、利用可能なすべてのパーミッションを追加して削除する必要があります.

  • モデル層
    このレイヤでは、FrontUserというクラスを作成しています.このクラスでは、どのユーザが認証を受けているかを知ることができます.
    public class FrontUser
    {
         public static bool HasPermission (RolesPermisos value)
         {
             var user = FrontUser.Get ();
             return! user.Rol.Permission.Where (x => x.PermissionID == value)
                                .Any ();
         }
    
         public static User Get ()
         {
             return new User (). Get (SessionHelper.GetUser ());
         }
    }
    
    注意してくださいと、HasPermissionメソッドが逆を行い、trueの場合はfalseを返します.また、パラメータとしてenumを受け取ります.なぜRead more