2011-11-09 50 views
0

1つのドメインの下に複数のサイトをホストしたい。しかし、現在、私はローカルホストに取り組んでいますので、私は私のetc/hostsファイルにこれらの2行を追加しました:サブドメインへのCookieへのアクセス

127.0.0.1 something.com 
127.0.0.1 orders.something.com 

IISでホスト2つのアプリケーションがあります。 1つはorders.something.com/OrdersSSOを使用して閲覧でき、その他はsomething.com/SSOSample/を使用して閲覧できます。

私はsomething.com/SSOSample/でこのコードを使用して認証Cookieを作成しました:

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

cookieを手動で設定しているため、authCookie.Domain = ".something.com"が必要です。 web.configドメイン属性は、ASP.NETがクッキーの有効期限を自動的に延長するときに使用されます。 –

関連する問題