2011-11-26 14 views
6

私はクッキーがWeb.configファイルに設定フォーム認証

<forms 
    name=".ASPXAUTH" 
    loginUrl="Login/" 
    protection="Validation" 
    timeout="120" 
    path="/"  
    domain=".mydomain.com"/> 

を使用して複数のサブドメイン間で共有することができる知っています。しかし、ローカルマシン上で同じものを複製する方法。私はラップトップでWindows 7とIIS 7を使用しています。だから私はサイトlocalhost.users /私の実際のサイトusers.mysite.com localhost.host/host.mysite.comと同様の。

答えて

9

localhost.usersおよびlocalhost.hostはクロスドメインです。 Cookieをクロスドメインで共有することはできません。

あなたは、サブドメインが異なるように、このようにそれを設定できますが、ルートドメインは同じまま:

今すぐあなたのウェブでCookieドメインを設定
  • users.localhost
  • host.localhost

.configからlocalhost

domain=".localhost" 

とあなたのc:\Windows\System32\drivers\etc\hostsファイルには、次の2つのエントリを追加します。

127.0.0.1 users.localhost 
127.0.0.1 host.localhost 

は今、あなたは成功し users.localhosthost.localhostの間で認証Cookieを共有することができるようになります。

ああ、プロダクションで出荷する前にweb.configの値を正しいルートドメインに変換する自動ビルドプロセスにステップを忘れることはありません。

+0

私はVisual Studioからこれらのサイトを作成したので、ダーリン、これをIISで設定する方法をお教えします。 – Parminder

+1

@Parminder、IIS設定に関する質問はhttp://serverfault.comで議論されるべきです。 –

+0

ダーリン、ありがとう、私はそこでこの質問をしましたが、2つの異なる場所で同じ質問をするのは理にかなっています。 – Parminder

3

フレームワーク4.5で動作していて、フレームワーク4以下のトークンを共有しようとしている人のためのリマインダです。これにより、4つ以下のアプリケーションで認証クッキーを受け取らないことに気づくでしょう。すなわち:あなたのweb.configにあなたが持っている場合:

<httpRuntime maxRequestLength="80480" targetFramework="4.5" /> 

あなたはそれがどんな副作用がそうであるならば、私は知りませんが、それは仕事を得るためにtargetFramework="4.5"属性を除去することにより、仕事を得ることができます。

<httpRuntime maxRequestLength="80480" /> 
+0

これは、.NET 4.5.1を使用する一対のWebサイトに私を保存しました! –

+0

サブアプリケーションで作業認証ができませんでした。これは、2つのweb.configファイルでtargetFramework = "4.5"を使った作業です。ありがとう – Troopers