2011-01-31 9 views
0

하위 도메인이 있습니다. sub1.domain.ru, sub2.domain.ru, sub3.domain.ru, sub4.domain.ru입니다. 기본 페이지에서 코드가있다 :하위 도메인 용 캐시

protected void Page_Load(object sender, EventArgs e) 
{ 
    string subdomain = Cache[key] as string; 
    if (subdomain != null) 
    { 
     Label1.Text = "Your subdomain is :" + subdomain; 
    } 
    else 
    { 
     Cache[key] = GetSubDomainName(); 
     Label1.Text = "Your subdomain is :" + Cache[key] as string; 
    } 
} 

사용자가 다른 하위 도메인 (sub1.domain.ru, sub2.domain.ru, sub3.domain.ru, sub4.domain에 자신의 하위 도메인 이름을 볼 수 있습니다. 루)?

답변

0

하지만 캐시는 전 세계라고 생각합니다. 당신은 세션을 사용해야합니다 대신 ...

당신은

cache["subdomain"] = getMySubDomain() 

는 매번를 덮어 쓰게됩니다, 당신은

dim sd as string = cache["subdomain"] 

을 할 경우 당신에게 독립적 마지막으로 저장된 하위 도메인을 줄 것이다 할 경우 현재 로그인 한 사용자 ...

다른 브라우저로 시도하지 마십시오.

+0

'else'에는 'if'가 있습니다. 더 명확하게 서식을 조정했습니다. –

+0

getsubdomainname() - 사용자 지정 메서드입니다. 그것은 단지 예입니다. – Alexandre

2

질문을 다시 말하면 페이지가있는 응용 프로그램과 관련된 Cache 개체가 하위 도메인에서 공유되는지 묻는 것입니다.

대답은

, 그것은 따라 달라

  • 각 하위 도메인이 별개의 응용 프로그램 도메인로 배포하는 경우, 그들은 자신의 메모리 공간 (캐시세션해야합니다 공유되지 않습니다). 참고 : 동일한 응용 프로그램 풀을 공유하는 경우에도 마찬가지입니다. 이 여러 호스트 헤더를 받아들이는 하나의 응용 프로그램 도메인로 설정 한 경우

  • , 는 서로 다른 하위 도메인에서이 페이지에 액세스하는 것이 가능하지만, 는 에 액세스 한 캐시의 사본을 모든 요청에 ​​의해.