2011-01-31 3 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オブジェクトがサブドメイン間で共有されているかどうかを尋ねていると思います。

答えは、それが依存している:

  • 各サブドメインは 明確なのAppDomainとして展開されている場合は、彼らは 、独自のメモリ空間を持つことになります(キャッシュセッション共有されません)。注:同じアプリケーションプールを共有している場合でも、これは当てはまります。あなたは、これは、複数のホストヘッダーを受け入れる単一 のAppDomainとして設定している場合は

  • 、 は、それは別のサブドメインの下で、この ページにアクセスすることは可能だが は アクセスキャッシュの一つのコピーを持っていますすべての要求によって。

関連する問題