인증 - Authorization
Last updated
Last updated
Authorization
권한 부여는 사용자가 응용 프로그램에서 특정 작업을 수행 할 수 있는지 확인하는 데 사용됩니다. Axs는 권한을 구현하기 위한 롤 기반 기능을 제공합니다.
IPermissionChecker
권한 부여 시스템은 IPermissionChecker를 사용하여 권한을 확인합니다.
권한은 다음 속성으로 정의됩니다 :
Name: 시스템 전체에서 고유한 이름입니다. 권한 이름에 대한 const 문자열을 정의하는 것이 좋습니다.
Display name: 나중에 UI에서 권한을 표시하는 데 사용할 수 있는 다국어 가능한 문자열 키입니다.
Description: 나중에 UI에서 권한 정의를 표시하는 데 사용할 수 있는 다국어 가능한 문자열 키입니다.
MultiTenancySides: 다중 테넌트 애플리케이션의 경우 테넌트 또는 호스트가 권한을 사용할 수 있습니다.
권한은 상위 및 하위 권한을 가질 수 있습니다. 이는 권한 검사에 영향을주지 않지만 UI에서 권한을 그룹화하는 데 도움이됩니다.
권한 부여 공급자를 만든 후 모듈의 PreInitialize 메서드에 등록해야 합니다.
AxsAuthorize 어트리뷰트를 사용한 권한 체크
AxsAuthorize 속성은 권한을 확인하는 가장 쉽고 일반적인 방법입니다.
"관리자.사용자관리.추가"권한이 부여되지 않은 사용자는 CreateUser 메서드를 호출 할 수 없습니다.
IPermissionChecker 사용
AxsAuthorize 속성은 대부분의 경우에 충분하지만 메서드 본문에서 권한을 확인해야하는 상황이 있습니다. 아래 예제와 같이 IPermissionChecker를 주입하고 사용할 수 있습니다.
IsGranted는 단순히 true 또는 false를 반환하므로 모든 논리를 코딩 할 수 있습니다. 위와 같이 단순히 권한을 확인하고 예외를 throw하면 Authorize 메서드를 사용할 수 있습니다 :
권한이 필요한 각 작업에 대해 고유 한 권한이 정의됩니다. Axs는 모듈 식으로 설계 되었으므로 모듈()마다 다른 권한을 가질 수 있습니다. 모듈은 권한을 정의하기 위해 AuthorizationProvider에서 파생 된 클래스를 만들어야 합니다.
권한 부여 공급자는 종속성 주입()에 자동으로 등록됩니다. 권한 부여 공급자는 다른 소스를 사용하여 권한 정의를 빌드하기 위해 모든 종속성 (예 : 저장소)을 삽입 할 수 있습니다.
AxsAuthorize 속성은 현재 사용자가 로그인 했는지도 확인합니다 (using ). 메서드에 대해 AxsAuthorize를 선언하면 로그인만 확인합니다.