2011-11-09 5 views
0

한 도메인 아래에서 여러 사이트를 호스팅하고 싶습니다. 그러나 현재 내가 localhost를하고 있어요 그래서 나는 내 등을이 두 라인을 추가/hosts 파일 :쿠키를 하위 도메인에 액세스

127.0.0.1 something.com 
127.0.0.1 orders.something.com 

는 IIS에서 호스팅 2 응용 프로그램이 있습니다. 하나는 orders.something.com/OrdersSSO을 사용하여 탐색 할 수 있으며 something.com/SSOSample/을 사용하여 다른 브라우저를 탐색 할 수 있습니다.

나는 something.com/SSOSample/이 코드를 사용하여 인증 쿠키를 만들어 :
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, 
                   "abc", 
                   DateTime.Now, 
                   DateTime.Now.AddMinutes(30), // value of time out property 
                   true, // Value of IsPersistent property 
                   String.Empty, 
                   FormsAuthentication.FormsCookiePath); 

          string encryptedTicket = FormsAuthentication.Encrypt(ticket); 
          HttpCookie authCookie = new HttpCookie(
         FormsAuthentication.FormsCookieName, 
         encryptedTicket); 

          Response.Cookies.Add(authCookie); 

그래서 나는이 응용 프로그램에서 기록하고있다. 그러나 orders.something.com/OrdersSSO를 검색 할 때 인증 쿠키를받지 못합니다.

이 Web.config의 내 양식 섹션 :

<authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login.aspx" enableCrossAppRedirects="true" timeout="2880" domain=".something.com" /> 
    </authentication> 

나는 무엇을 놓치고?

답변

3

쿠키 doamin이 올바르게 설정되지 않은 것 같습니다. 이 같은

시도 뭔가 "."

authCookie.Domain = ".something.com" 

참고 도메인 이름 앞에서 something.com의 하위 도메인에서 작동하게하는 것입니다.

+0

제 web.config을 읽어보십시오. 나는 이미 그것을 가지고있다. – Jaggu

+0

쿠키를 수동으로 설정하기 때문에 여전히 authCookie.Domain = ".something.com"이 필요합니다. ASP.NET이 쿠키 만료를 자동으로 확장하면 web.config 도메인 특성이 사용됩니다. –

관련 문제