Datasnap.DSSession.TDSSession.GetAuthRoleInternal
Delphi
procedure GetAuthRoleInternal(ServerMethod: TDSServerMethod; AuthManager : TDSCustomAuthenticationManager; out AuthorizedRoles, DeniedRoles: TStrings);
C++
void __fastcall GetAuthRoleInternal(Datasnap::Dscommonserver::TDSServerMethod* ServerMethod, Datasnap::Dsauth::TDSCustomAuthenticationManager* AuthManager, /* out */ System::Classes::TStrings* &AuthorizedRoles, /* out */ System::Classes::TStrings* &DeniedRoles);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
procedure function |
protected | Datasnap.DSSession.pas Datasnap.DSSession.hpp |
Datasnap.DSSession | TDSSession |
説明
指定されたサーバー メソッドについて、権限付与されたロールと拒否されたロールを返し、結果をキャッシュします。
GetAuthRoleInternal は、サーバー メソッドと認証マネージャを受け取ります。それを使って適切な TRoleAuth インスタンスを構築するか検索し、それを基に出力パラメータ AuthorizedRoles
および DeniedRoles
の内容を設定します。
TDSMethodInfo の AuthRole プロパティには、そのメソッドに関して使われるキャッシュされた TRoleAuth を保持することができます。ただし、ここにキャッシュされていたとしてもそれが設計時ロールであれば、GetAuthRoleInternal は、そのロールが認証マネージャの Roles 属性の最新状態を反映しているかどうかを確認します。TRoleAuth が古い場合には、AuthRole プロパティを、Roles コレクションの最新状態を使って作成した新しいものに置き換えます。
キャッシュされた項目がコード内の属性で作成された TRoleAuth であり、認証マネージャの設計時 Roles コレクションを基に少なくとも 1 つの権限付与されたロールまたは拒否されたロールを持つものを作成できる場合には、その項目は設計時 TRoleAuth インスタンスに置き換えられます。
TRoleAuth が AuthRole プロパティ内に存在せず、Roles コレクションからも作成できない場合に、メソッドの属性として TRoleAuth が存在すれば、それが AuthRole に格納されて使われます。存在しなければ、空の TRoleAuth が作成され、キャッシュされます。