4

생성자에 종속성이있는 사용자 지정 인증 필터가 있습니다.Autofac을 사용하여 속성을 활동 필터에 "바인딩"하는 방법은 무엇입니까?

public class CustomAuthorizationFilter : IAuthorizationFilter 

그리고 데이터를 보유하고있는 일반 속성.

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false, Inherited = false)] 
public class CustomAuthorizeAttribute : FilterAttribute 

내가 here에서 "빌려"나는 정말 거리를 즐길 접근 방법. 나는 필터가 어떻게 움직이고 속성을 얻는 지 이해하지만 와이어 업 (wire-up)으로 무언가를 놓치고있다.

속성이있을 때 필터가 호출되도록 필터에 속성을 "바인딩"하는 방법은 무엇입니까? Ninject는 syntaxforthis 인 것으로 보입니다. 그러나 나는 Autofac에서 동등 물을 알아 내지 못했습니다.

이것이 Autofac 외부의 앱에서 설정해야하는 항목이라면, 그것도 좋습니다.

감사합니다. Josh

답변

1

동일한 클래스를 필터 및 특성으로 사용할 수 있습니다. 그러나 다른 속성을 정의하고 정의되어 있는지 점검 할 수도 있습니다.

다음 필터/속성 클래스를 등록해야합니다. Global.asax 안에 filters.Add(new HandleErrorAttribute());과 같은 형식으로 등록해야합니다.

filterMethods (귀하의 경우 OnAuthorize이어야 함) 안에 다른 속성 인 IsDefined이 있는지 또는 일부 속성이 정의되어 있는지 확인할 수 있습니다.

+0

그래서 필터를 전역 필터로 등록해야합니다. 그러면 모든 요청에 ​​대해 실행되고 그 실행 확인의 일부로 다른 속성이 정의되어 있는지 확인합니다. – Josh

+0

그게 전부입니다. 내가 이해 한 것에서. – rcaval

+0

좋아요, 실제로 시도했지만 모든 요청을 실행하는 데 열중하지 않았습니다. DI를 필요로하지 않도록 리팩터링 할 수있었습니다. 필자는 필터와 속성을 함께 사용하지 않았지만 별도로 유지해야했습니다. 따라서 Ninject와 비슷한 autofac 구문을 알지 못합니까? – Josh