ServiceStack 서버가 ASP.NET의 인증 쿠키 만 사용할 수있는 솔루션을 설계하려고합니다. (실제로는 어떤 쿠키라도 될 수 있습니다. 백 채널을 사용하여 세부 정보를 조회 할 수있는 세션 ID를 얻는 것입니다.) 사용자 지정 인증 공급자는 자격 증명을 기반으로하므로 올바른 방향으로 보이지 않습니다. 대신 GlobalRequestFilter가 나에게 더 의미가있었습니다. 여기서 쿠키를 확인하고 외부 세션 정보를 가져온 다음 ServiceStack 세션에 설정하고 IsAuthenticated를 설정합니다. 요구되는 세션 세부 정보에 대한 액세스 권한이 있으므로 요청 서비스에서 정상적으로 작동합니다. 지금까지 괜찮아.사용자 지정 세션이 인증과 작동하지 않습니다.
Authenticate 특성으로 서비스를 잠그기로 결정하면 내 필터보다 먼저 특성을 실행하여 항상 로그인하도록 리디렉션하려고하므로 문제가 발생합니다. 내 논리를 추가하여 인증 속성 전에 실행하고 올바르게 검증하도록 권장 장소는 무엇입니까?
단지 발견 및 변경 :
그런 다음 인증 공급자 예를 들어,
AppHost.Configure()
에AuthFeature
플러그인에 추가 사용자 정의를 등록하려면 : 여기 당신이 세션은 사용자가 인증 된 경우 사용자, 예를 채울 수 있습니다 GlobalRequestFilters에서 PreRequestField에 이르기까지 아무런 도움이되지 않습니다. Authenticate 속성을 볼 때 여전히 401을 수행하고 있습니다 –나는 그것을 얻었습니다. 세션이 Authenticate 특성을 만족하는지 확인하는 실제 방법은 세션의 IsAuthorized 메서드를 재정의하는 것입니다 (강력한 형식의 AuthUserSession을 만들어야하며) 어떤 공급자가 요청하는지에 따라 true를 반환해야합니다. public override bool IsAuthorized (문자열 공급자) { return base.IsAuthorized (provider); }' –