2013-10-24 4 views
1

웹 응용 프로그램을 디자인 중이며 두 개의 웹 프로젝트 인 MVC 프로젝트와 WebAPI 프로젝트로 분할했습니다. MVC 프로젝트는 http://mysite.com/app에 바인드 된 가상 호스트에 배포됩니다. WebAPI 프로젝트는 MVC 응용 프로그램의 하위 응용 프로그램으로 배포되며 http://mysite.com/app/Data에 바인딩됩니다. 이 분할의 이유는 WebAPI 사이트가 MVC 사이트가 프레젠테이션 계층 역할을하는 동안 데이터 계층의 독립 어셈블리로 패키지화 될 수 있기 때문입니다.MVC 응용 프로그램 및 WebAPI 하위 응용 프로그램에 대한 인증

인증 및 권한 부여는 최상위 MVC 응용 프로그램에서는 예상대로 작동하지만 WebAPI 하위 응용 프로그램에서는 작동하지 않습니다. 하위 응용 프로그램이 부모와 동일한 HttpContext를 공유 할 것으로 예상했을 것입니다. 나는 이것에 대해 오해하고 있는가?

부모 응용 프로그램과 하위 응용 프로그램을 서로 연결하여 서로 동일한 인증 컨텍스트를 사용하는 방법이 있습니까?

+0

어떤 인증 형식을 사용하고 있습니까? OAuth, Windows, Forms? – ianaldo21

+0

또한 두 개의 응용 프로그램 인증 컨텍스트를 기술적으로 2 개의 개별 응용 프로그램으로 묶어서는 안됩니다. – ianaldo21

답변

3

두 응용 프로그램간에 HttpContext를 공유 할 수 있다고 생각하지 않습니다.

두 응용 프로그램이 동일한 도메인에 속하기 때문에 두 응용 프로그램간에 동일한 쿠키 인증을 공유 할 수 있습니다. 두 응용 프로그램에 대한 쿠키 공유에 대한 내용은 MSDN link입니다.

여기서 두 가지 응용 프로그램을 사용할 필요가 없다고 느낍니다. 모든 웹 API 관련 코드를 다른 어셈블리에 넣고 참조 할 수 있도록 MVC 응용 프로그램을 만들 수 있습니다.

+0

두 응용 프로그램을 하나로 결합하고 어셈블리를 참조하는 것이 훨씬 더 나은 솔루션이었습니다. 고맙습니다! 데이터 프로젝트는 원래 WCF 프로젝트로 시작되었지만 WebAPI OData 지원이 향상됨에 따라 WebAPI 프로젝트로 변형되었으므로 결코 두 번 생각하지 않았습니다. –

관련 문제