저는 컨트롤러 동작을 보호하기 위해 유창한 보안 설정 (및 작동)을하고 Castle Windsor를 사용하여 모든 것을 해결했습니다 (다운로드 할 수있는 castlewindsor-fluentsecurity 프로젝트에 표시된 것처럼). 이제 Active Directory에서 쿼리를 실행하는 사용자 지정 정책을 만듭니다. ISecurityPolicy를 구현하는 테스트 정책을 만들었지 만 AD에 액세스하기위한 인터페이스를 주입해야하므로 기본 생성자가 없습니다. 정책은 다음과 같습니다. -성 윈저에서 유창한 보안 맞춤 정책 사용하기
IQueryHandler는 다른 곳에서 사용되고 올바르게 해석됩니다.
configuration.For<Areas.People.Controllers.InfoController>().AddPolicy<TestPolicy>();
을하지만 호출 할 때이 실패 : - - : 나는 컨트롤러에 정책을 추가 TestPolicy로드 할 수 없습니다! 정책에 빈 생성자가 있거나 IoC 컨테이너에 등록되어 있는지 확인하십시오. 이제 설명서를 살펴보면 SecurityConfigurator에 IoC를 사용하고 있다고 알려주는 단계가 빠져있는 것처럼 보입니다. 워드 프로세서는 특정 성 윈저의 예를 표시하지 않습니다하지만 난 '와 함께': -
SecurityConfigurator.Configure(configuration => configuration.ResolveServicesUsing(type => _container.ResolveAll(type).Cast<object>()));
잘 작동하지 않습니다 그것은 때 시간의 SecurityConfig하여 SecurityConfigurator가 성 윈저 용기를 필요로 이상한 것 같다 .RegisterSecurityRules()가 호출되었습니다. Castle Windsor에서 거의 끝났습니다. 이 인스턴스에서 Fluent Security를 어떻게 구성해야합니까?
을 SecurityConfigurator에서 내가 configuration.ResolveServicesUsing( type => container.ResolveAll(type).Cast<object>(), type => container.Kernel.HasComponent(type) ? container.Resolve(type) : null );
내가 아니라 실제 정책보다는 인터페이스를 추가 할 컨트롤러 정책을 변경 한 :
configuration.For<Areas.People.Controllers.InfoController>().AddPolicy<ITestPolicy>();
-