2013-03-20 2 views
1

폼 인증을 사용하는 ASP.NET 응용 프로그램이 있습니다. 또한 동일한 응용 프로그램 풀을 사용하고 동일한 web.config 인증 설정을 사용하여 별도의 응용 프로그램 (가상 디렉터리 아님)으로 하위 폴더 설치가 있습니다.응용 프로그램 간의 폼 인증

나는 두 가지 응용 프로그램이 동일한 인증을 공유하지 않음을 이해하지 못합니다. 예를 들어, FormsAuthentication.SetAuthCookie는 독립적으로 작동하는 것으로 보이며 User.Identity.Name은 두 응용 프로그램에서 다른 값을 반환합니다.

제 질문은 어떻게 동일한 인증을 공유 할 수 있습니까? 하나의 앱에 로그인하고 다른 앱에 동일한 ID로 표시하려고합니다. 나는 .ASPAUTH 쿠키가 동일한 값을 가짐을 볼 수 있습니다 (분명히, 그들은 같은 도메인하에 있기 때문에). 그러나 싱글 사인온은 어떻게 작동합니까?

감사 Themos는

답변

4

응용 프로그램이 같은 AppPool을에 비록, 기계 키는이 다릅니다. 일반적으로 인증 쿠키는 시스템 키로 암호화됩니다.

컴퓨터 키의 기본 동작은 IIS 사이트의 응용 프로그램이 아닌 응용 프로그램 풀 당 키 다른 시스템을 생성 IsolateApps을 사용하는 것입니다.

두 개의 서로 다른 컴퓨터 키가 있으므로 응용 프로그램간에 인증 쿠키를 해독 할 수 없습니다. 두 응용 프로그램 모두에 대해 정적 시스템 키 (동일 함)를 추가해야합니다.

sites like this one을 사용하여 자신의 컴퓨터 키를 생성 할 수 있습니다.

또한 MSDN 문서 인 Forms Authentication Across Applications도 두 응용 프로그램간에 일치해야하는 설정을 지정합니다.

관련 문제