Module Zeroの役割管理
1987 ワード
『Module Zeroラーニングカタログ』に戻りますロールエンティティ ロールマネージャ マルチテナント ロールエンティティ
ロールエンティティは、アプリケーションのロールを表します.AppRoleクラスから派生する必要があります.以下に示します.
このクラスはmodule-zeroをインストールしたときに作成されます.ロールデータがデータに格納されているAppRolesテーブル.ロールクラスにカスタム属性を追加できます.
AppRole定義の最も重要な属性は次のとおりです. Name:テナントの役割の唯一の名前. DisplayName:キャラクタに表示される名前. IsDefault:ロールがデフォルトで新しいユーザーに割り当てられているかどうかを示します. IsStatic:ロールが静的であるかどうかを示します(事前に生成されたものと削除できないもの).
ロールは、権限を組み合わせるために使用されます.ユーザがロールを持つと、Taはロールのすべての権限を取得します.1人のユーザーに複数のロールを持つことができます.ユーザーの権限は、そのユーザーが所有するロールのすべての権限のセットです.
動的ロールvs静的ロール
Module-zeroでは、キャラクタを動的または静的にすることができます.静的ロール:静的ロールには既知の名前(adminなど)があり、後でこの名前を変更することはできません(表示する名前を変更できます).システムが起動したときにすでに存在し、削除できません.したがって、静的なロール名に基づいてコードを書くことができます. ダイナミック(非静的)ロール:デプロイ後、ダイナミックなロールを作成できます.その後、このロールに権限を付与したり、他のユーザーにロールを付与したり、削除したりすることができます.開発時には、ダイナミックキャラクタの名前を知らなくてもいいです.
IsStaticプロパティを使用して、キャラクタが静的か動的かを設定します.また、モジュールのPreInitializeに静的ロールを登録する必要があります.テナントに「Admin」静的ロールを与えるとします.
これで、module-zeroはこの静的な役を知っています.
デフォルトのロール
1つ以上のロールをデフォルトのロールに設定できます.デフォルトでは、デフォルトのロールは、新しく追加されたユーザーまたは新しく登録されたユーザーに付与されます.これは開発時のプロパティではなく、パブリケーション後に設定または変更できます.IsDefaultプロパティを使用してデフォルトのロールを設定します.
ロールマネージャ
ロールマネージャは、ロールレルムロジックを実行するサービスです.
ロール管理者を注入し、それを使用してロールを作成、削除、更新し、ユーザーに権限を与えることができます.ここで自分の方法を追加することができます.また、AppRoleManagerベースクラスの任意のメソッドを書き換えて、自分のニーズを満たすことができます.
ユーザー管理者のように、ロール管理者のいくつかの方法は、場合によっては例外を投げ出すのではなく、IdentityResultを結果として返します.詳細については、ユーザー管理を参照してください.
マルチテナント
ユーザー管理と同様に、ロール管理もマルチテナントアプリケーションで単一テナントにサービスされるようになります.詳細については、ユーザー管理を参照してください.
ロールエンティティは、アプリケーションのロールを表します.AppRoleクラスから派生する必要があります.以下に示します.
public class Role : AbpRole<Tenant, User>
{
//
}
このクラスはmodule-zeroをインストールしたときに作成されます.ロールデータがデータに格納されているAppRolesテーブル.ロールクラスにカスタム属性を追加できます.
AppRole定義の最も重要な属性は次のとおりです.
ロールは、権限を組み合わせるために使用されます.ユーザがロールを持つと、Taはロールのすべての権限を取得します.1人のユーザーに複数のロールを持つことができます.ユーザーの権限は、そのユーザーが所有するロールのすべての権限のセットです.
動的ロールvs静的ロール
Module-zeroでは、キャラクタを動的または静的にすることができます.
IsStaticプロパティを使用して、キャラクタが静的か動的かを設定します.また、モジュールのPreInitializeに静的ロールを登録する必要があります.テナントに「Admin」静的ロールを与えるとします.
Configuration.Modules.Zero().RoleManagement.StaticRoles.Add(new StaticRoleDefinition("Admin", MultiTenancySides.Tenant));
これで、module-zeroはこの静的な役を知っています.
デフォルトのロール
1つ以上のロールをデフォルトのロールに設定できます.デフォルトでは、デフォルトのロールは、新しく追加されたユーザーまたは新しく登録されたユーザーに付与されます.これは開発時のプロパティではなく、パブリケーション後に設定または変更できます.IsDefaultプロパティを使用してデフォルトのロールを設定します.
ロールマネージャ
ロールマネージャは、ロールレルムロジックを実行するサービスです.
public class RoleManager : AbpRoleManager<Tenant, Role, User>
{
//
}
ロール管理者を注入し、それを使用してロールを作成、削除、更新し、ユーザーに権限を与えることができます.ここで自分の方法を追加することができます.また、AppRoleManagerベースクラスの任意のメソッドを書き換えて、自分のニーズを満たすことができます.
ユーザー管理者のように、ロール管理者のいくつかの方法は、場合によっては例外を投げ出すのではなく、IdentityResultを結果として返します.詳細については、ユーザー管理を参照してください.
マルチテナント
ユーザー管理と同様に、ロール管理もマルチテナントアプリケーションで単一テナントにサービスされるようになります.詳細については、ユーザー管理を参照してください.