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>
は、私が何をしないのですか?
私のweb.configを読んでください。私はすでにそれを持っています。 – Jaggu
cookieを手動で設定しているため、authCookie.Domain = ".something.com"が必要です。 web.configドメイン属性は、ASP.NETがクッキーの有効期限を自動的に延長するときに使用されます。 –