세션 - Session
Last updated
Last updated
Session
Axs는 IAxsSession 인터페이스를 제공하여 ASP.NET의 세션을 사용하지 않고도 현재 사용자와 테넌트를 얻을 수 있습니다. IAxsSession은 권한 부여() 시스템과 같은 Axs의 다른 구조에서 완전히 통합되어 사용할 수 있습니다.
IAxsSession은 일반적으로 세션 정보 없이는 동작 할 수 없는 경우 필요한 클래스에 속성이 주입()됩니다. 속성 주입을 사용하는 경우 아래와 같이 NullAxsSession.Instance를 기본값으로 사용할 수 있습니다 :
인증 / 권한은 애플리케이션 계층 작업이므로 애플리케이션 계층과 상위 계층에서 IAxsSession을 사용하는 것이 좋습니다. 이것은 일반적으로 도메인 계층에서 수행되지 않습니다. AppController, AxsController, AxsApiController 및 일부 기타 기본 클래스에는 AxsSession이 이미 삽입되어 있으므로 메서드에서 AxsSession 속성을 사용할 수 있습니다.
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 범위로 테넌트와 사용자를 변경을 확인 할 수 있습니다.