1

同じドメインの2つのWebサイトがありますが、異なる認証が必要です。ただし、2つのWebサイトの両方が同じブラウザにログインしている場合、後者は前者のWebサイトからログアウトします。これは、1人のユーザーが1つのWebサイトにログインすると、最初の認証チケットを更新するさまざまなフォームの認証チケットが発行されるために発生していることがわかります。両方のWebサイトが同じ認証チケットを使用しているのはなぜですか?一方のWebサイトの認証チケットがもう一方のWebサイトを更新しないようにする方法。

私の設定ファイルは以下のようになります

<authentication mode="Forms">
  <forms  loginUrl="~/Login.aspx" name=".ASPXFORMSAUTH" defaultUrl="~/Default/Home.aspx"    protection="All" timeout="10" slidingExpiration="true" requireSSL="false"/>
 </authentication>

以下は、1つのWebサイトの認証チケットを発行するために使用されます

 FormsAuthentication.SetAuthCookie(userid,true);

別のウェブサイトについては、以下が使用されます。また、両方のWebサイトには異なるユーザーIDのセットがあります

   var ticket = new FormsAuthenticationTicket(1,userid, DateTime.Now,
                                                                       DateTime.Now.AddMinutes(90), false,string.Empty, FormsAuthentication.FormsCookiePath);
string cookieStr = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieStr);

Response.Cookies.Add(cookie);
4

1 に答える 1

4

両方のサイトがサブドメインである場合は、たとえばsubdomain.domain.comのようにwebconfigでCookieドメインを設定します。そうでない場合、Cookieはdomain.com間で機能します。

ローカルIISのサブドメイン間でのフォーム認証を参照してください

詳細については

クリス

于 2013-03-24T09:43:07.413 に答える