2011-07-05 11 views
1

저는 매일 여러 사이트에서 작업하는 컨설팅 샵에서 일하면서 대부분 ASP.NET MVC 3을 실행합니다. IIS Express는 모든 사이트에서 "http : // localhost : 1234"와 같은 것을 볼 수 있습니다.HttpContext.Current.User는 로컬로 실행되는 여러 MVC 사이트에서 동일합니다.

우리는 모든 사이트에서 폼 인증을 사용하고 있으며 한 사이트에서 다른 사이트로 전환 할 때 이상하게 보입니다. 사이트 A에 로그인하고 사이트 B를 탐색하기 시작할 때 HttpContext.Current.User 속성은 사이트 B를 디버깅 할 때 사이트 A에서 값을 설정합니다.

이것은 MVC 사이트. IIS Express에서 동일한 컴퓨터에서 WebForms 사이트를 실행하면 HttpContext.Current.User는 GenericPrincipal 개체와 같습니다. 즉, 모든 Web Forms 사이트는 인증이 이루어지는 한 격리되어있는 것처럼 보입니다. 이 사이트가 서로의 인증 정보를 선택하도록하는 MVC와 다른 점은 무엇입니까?

답변

4

인증 쿠키의 이름은 모든 사이트에서 동일하며 모두 동일한 도메인에서 호스팅되는 경우이 쿠키는 각 요청에 따라 전송됩니다. 기본적으로 쿠키 이름은 .ASPXAUTH입니다. 당신이 사이트 A에서 인증 따라서 경우 자동으로 쿠키의 이름이 web.configforms 섹션에 정의 된 사이트 B에서 인증됩니다

<forms loginUrl="~/Account/LogOn" timeout="2880" name="someCookieName" /> 

그래서 사이트에 대해 서로 다른 인증 쿠키 이름을 지정하십시오.

+0

감사합니다. 우리는 당신의 게시물을보기 전에 약 30 초를 알아 냈습니다. 절대적으로 맞습니다. –

관련 문제