세션 - Session
Session
설명
Axs는 IAxsSession 인터페이스를 제공하여 ASP.NET의 세션을 사용하지 않고도 현재 사용자와 테넌트를 얻을 수 있습니다. IAxsSession은 권한 부여(authorization) 시스템과 같은 Axs의 다른 구조에서 완전히 통합되어 사용할 수 있습니다.
Injecting Session
IAxsSession은 일반적으로 세션 정보 없이는 동작 할 수 없는 경우 필요한 클래스에 속성이 주입(property injected)됩니다. 속성 주입을 사용하는 경우 아래와 같이 NullAxsSession.Instance를 기본값으로 사용할 수 있습니다 :
인증 / 권한은 애플리케이션 계층 작업이므로 애플리케이션 계층과 상위 계층에서 IAxsSession을 사용하는 것이 좋습니다. 이것은 일반적으로 도메인 계층에서 수행되지 않습니다. AppController, AxsController, AxsApiController 및 일부 기타 기본 클래스에는 AxsSession이 이미 삽입되어 있으므로 메서드에서 AxsSession 속성을 사용할 수 있습니다.
Session Properties
AxsSession은 몇 가지 주요 속성을 정의합니다
UserId : 현재 사용자의 ID 또는 로그인이 안된경우 null입니다.
TenantId : 현재 테넌트의 ID 또는 현재 테넌트가 없는 경우 null입니다 (사용자가 로그인하지 않았거나 호스트 사용자 인 경우 null입니다).
UserId 및 TenantId는 nullable입니다. nullable이 아닌 GetUserId() 및 GetTenantId() 메서드도 있습니다. 현재 사용자가 있다고 확신하는 경우 GetUserId()를 호출 할 수 있습니다. 현재 사용자가 null 인 경우 에러가 발생합니다. GetTenantId()도 이런 방식으로 동작합니다.
세션값 범위 변경
일부 특정 시나리오의 경우에는 제한된 범위에 대해 세션 값을 변경 또는 무시해야 할 수 있습니다. 이러한 경우 아래와 같이 IAxsSession.Use 메서드를 사용할 수 있습니다.
Use 메서드는 IDisposable을 반환하며 삭제해야합니다. 반환 값이 삭제되면 세션 값은 자동으로 이전 값으로 복원됩니다.
주의!
위와 같이 using 블록에서 Use 메서드를 사용하는 것을 권고 드립니다.
확인
swagger에서 확인 디버그 모드에서 로그인 후 CallMySampleClass를 호출해서 세션이 동작하는 지를 확인할 수 있다.
브레이크 포인트를 걸어서 로그인 후 확인 해 보면 AxsSession.UserId에 값이 들언온 것을 확인할 수 있다.
Use를 사용해서 using 범위로 테넌트와 사용자를 변경을 확인 할 수 있습니다.
Last updated