ASPでカスタムロールベースの承認.ネットMVC
1374 ワード
このポストでは、ASPでロールとパーミッションを実装するために使用するロジックを説明します.これは、4つのテーブルを作成しました.
データベース
User :このテーブルは、システムのすべてのユーザーを管理し、次の表を参照してください.
役割:私たちのシステムが実装する役割、すなわち、スーパー管理者、管理者、モデレーター、スーパーユーザなどを管理します
許可:このテーブルは、私たちのビジネスが必要とするすべてのアクセス許可を処理します.学生を見ることができますか.学生にメモを追加できますか.
PermissionDeniedByLast :このテーブルは、通常のものがパーミッションをユーザに割り当てることになるので、他の方法で動作します.私にとって、ユーザはすべての権限を持っているので、実装できないアクセス許可を追加するほうが簡単です.これは簡単です.そうでなければ、利用可能なすべてのパーミッションを追加して削除する必要があります.
モデル層
このレイヤでは、FrontUserというクラスを作成しています.このクラスでは、どのユーザが認証を受けているかを知ることができます.
データベース
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 moreReference
この問題について(ASPでカスタムロールベースの承認.ネットMVC), 我々は、より多くの情報をここで見つけました https://dev.to/whataluckyguy/custom-role-based-authorization-in-asp-net-mvc-3i3gテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol