ABP理論学習のApp Session
1615 ワード
総ディレクトリに戻る
紹介 注入セッション Session属性 を使用
アプリケーションがユーザーにログインを要求する場合、アプリケーションも現在のユーザーが実行している操作を知る必要があります.ASP.NET自体は、プレゼンテーションレイヤにセッションオブジェクトを提供していますが、ABPは、現在のユーザーとテナントを取得する必要がある場所で使用できるIAbpSessionインタフェースも提供しています.
実際のセッション情報を得るためにはIAbpSessionインタフェースを実装する必要がある.独自の方法で実現できますが、module-zeroプロジェクトでは完全に実現されています.
IAbpSessionはABP(インスタンスの設定システムとライセンスシステム)に完全に統合されている.
IAbpSessionの一般的な属性は、Session情報がない限りIAbpSessionが動作しないため、必要なクラスに注入される.属性注入を使用すればNullAppSessionを使用できます.Instanceはデフォルトとして次のようになります.
ライセンスはアプリケーション層のことなので、アプリケーション層とより高い層でIAbpSessionを使用することをお勧めします(一般的には分野層では使用しません).ApplicationService,AbpController,AbpApiControllerはAbpSessionに注入されている.したがって、AppSessionプロパティは、アプリケーション・レイヤ・サービス・メソッドで直接使用できます.
AppSessionは、いくつかのkey属性を定義します. UserId:現在のユーザのId.値はnullで、現在のユーザーが存在しないことを示します.呼び出したコードがユーザーに許可されている場合、nullの値はありません. TenantId:現在のテナントのId.現在のテナントが存在しない場合はnullです. MultiTenancySide:Host(テナント)かTenant(テナント)かもしれません.
UserIdおよびTenantIdはnullable(空)であり、空ではないGetUserId()およびGetTenantId()メソッドも存在する.現在のユーザーが存在すると判断した場合は、GetUserId()を呼び出すことができます.現在のユーザーがnullの場合、このメソッドは例外を放出します.GetTanantId()も同様である.
本編目録
紹介する
アプリケーションがユーザーにログインを要求する場合、アプリケーションも現在のユーザーが実行している操作を知る必要があります.ASP.NET自体は、プレゼンテーションレイヤにセッションオブジェクトを提供していますが、ABPは、現在のユーザーとテナントを取得する必要がある場所で使用できるIAbpSessionインタフェースも提供しています.
IAbpSessionについて
実際のセッション情報を得るためにはIAbpSessionインタフェースを実装する必要がある.独自の方法で実現できますが、module-zeroプロジェクトでは完全に実現されています.
IAbpSessionはABP(インスタンスの設定システムとライセンスシステム)に完全に統合されている.
注入セッション
IAbpSessionの一般的な属性は、Session情報がない限りIAbpSessionが動作しないため、必要なクラスに注入される.属性注入を使用すればNullAppSessionを使用できます.Instanceはデフォルトとして次のようになります.
public class MyClass : ITransientDependency
{
public IAbpSession AbpSession { get; set; }
public MyClass()
{
AbpSession = NullAbpSession.Instance;
}
public void MyMethod()
{
var currentUserId = AbpSession.UserId;
//...
}
}
ライセンスはアプリケーション層のことなので、アプリケーション層とより高い層でIAbpSessionを使用することをお勧めします(一般的には分野層では使用しません).ApplicationService,AbpController,AbpApiControllerはAbpSessionに注入されている.したがって、AppSessionプロパティは、アプリケーション・レイヤ・サービス・メソッドで直接使用できます.
セッション属性の使用
AppSessionは、いくつかのkey属性を定義します.
UserIdおよびTenantIdはnullable(空)であり、空ではないGetUserId()およびGetTenantId()メソッドも存在する.現在のユーザーが存在すると判断した場合は、GetUserId()を呼び出すことができます.現在のユーザーがnullの場合、このメソッドは例外を放出します.GetTanantId()も同様である.