2012-03-27 4 views
0

두 번째 다중 점유 MVC 응용 프로그램을 작성 중입니다. 내 첫 번째 하위 도메인을 사용하지 않았다. 대신, 테넌트 (clientportal) 식별자에 대한 첫 번째 매개 변수가있는 경로를 사용했습니다.하위 도메인 경로를 사용할 때 인증

Route route = new Route("{clientportal}/{controller}/{action}/{id}", 
         new RouteValueDictionary(new 
         { 
          controller = "ClientPortalHome", 
          action = "Index", 
          id = UrlParameter.Optional 
        }), new PortalRouteHandler()); 

이번에, 나는 실제 하위 도메인을 사용해야합니다.

이 작업을 수행하기 위해, 나는이 유사한 하위 도메인 경로 구현 Client1.mysite.com
Client2.mysite.com :

Is it possible to make an ASP.NET MVC route based on a subdomain?

내 질문은 이것이다 . 내 사용자로드 및 요청 인증을 처리 할 올바른 위치는 어디입니까?

Application_AuthenticateRequest가 하위 도메인 경로보다 먼저 발생합니다. 즉, AuthenticateRequest가 실행 중일 때 요청한 테넌트를 알지 못합니다.

아마 내가 사용자를로드하고 하위 도메인 경로 코드에서 요청을 인증 할 수 있지만 잘못된 냄새가납니다.

무엇이 여기에 있습니까?

답변

1

사용자 지정 권한 필터를 사용해야합니다. 이것은 컨트롤러 프로세스의 시작 부분에서 시작되며 ControllerContext에서 사용자를 인증하는 데 필요한 모든 정보를 갖게됩니다.

+0

Lazy 속성을 사용하여 내 사용자를 보유하는 WorkContext 개체를 만드는 작업이 끝났습니다. 당신의 솔루션은 잘 작동했을 것입니다. – rboarman