4

우리는 ASP.NET과 IIS 6.0을 사용하고 있습니다. IIS 6에서는 응용 프로그램, 웹 사이트 및 가상 디렉터리의 정의가 잘못 정의되어 IIS 7에서 많은 부분이 변경되었음을 알았습니다. 그러나 현재 IIS 6.0에서는 문제가 있습니다.단일 사이트의 여러 응용 프로그램 - 세션 및 폼 인증 범위

IIS에 정의 된 단일 웹 사이트와 가상 디렉터리에 여러 개의 별도 하위 사이트가 있습니다.

계획은 다음과 같다 : -

http://site.example.com/site1 
http://site.example.com/site2 
.. etc .. 

사이트 개발, 사이트 2, ... IIS 6.0에서 가상 디렉터리는 "기본 웹 사이트"에서이다.

대부분의 사이트에서 ASP.NET 세션 및 양식 인증을 사용해야하며 인증 데이터 또는 세션 정보를 전혀 공유하지 않아야합니다.

두 메커니즘은 현재 쿠키에 의존합니다. 그러나 기본적으로 생성 된 쿠키는 브라우저에서 동일한 이름을 사용하고 "/"경로를 가지므로 사이트의 쿠키가 서로 충돌합니다.

각 쿠키의 기본 이름을 변경하지 않고 어떻게 내 하위 사이트를 분리 할 수 ​​있습니까? IIS 6 "응용 프로그램"의 가상 디렉터리를 변경해야합니까? 쿠키에 제한된 범위를 적용하는 방법이 있습니까?

미리 감사드립니다.

답변

9

양식 인증의 경우 각 하위 사이트의 가상 디렉터리를 반영하기 위해 속성을 FormsCookiePath 속성으로 정의 할 수 있습니다. 세션 상태에

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.formscookiepath.aspx

, 나는 경로를 정의 할 수 있습니다 아무것도 보지 못했다,하지만 당신은 표준 cookieName = "ASP.NET_SessionId의" 값에서 멀리 다른 쿠키 이름을 정의 할 수 있습니다. 그런 식으로 각 하위 사이트는 다른 세션 쿠키를 찾습니다.

http://msdn.microsoft.com/en-us/library/h6bb9cz9(v=VS.100).aspx

관련 문제