さて、私はついに自分の質問に答えました。デバッグモードでサイトを実行する方法については、まず2つ目に取り組んでいきます。
サイトhttp:// localhost:[someport]へのビジュアルスタジオデバッグ。 mydomain.comにcookie.domainを使用してCookieを作成するようにコードが設定されている場合、指定したドメインの代わりにlocalhostにいることをブラウザが認識しているため、Cookieは設定されません。これを解決するために、ホストファイルにmydomain.comが127.0.0.1を指すようにエントリを入れました。その後、サイトをデバッグモードで起動しました。サイトがlocalhostとして公開されたら、ブラウザのURLをhttp://subdomain.domain.com:[someport]に変更して更新しました。これでクッキーを設定できます。
これを実行すると、自分のコードをトレースして、サブドメインのウェブサイトで作成された2つのCookieの問題を見つけることができました。私が見つけたのは、cookie.domainのためにmydomain.comのクッキーが作成されていたこと(下のCreateCookieメソッド)です。しかし、私はCookie(UpdateCookie)の有効期限を更新しようとしていたときに、サブドメインCookieを使用しているはずだと思って元に戻り、見つからなかったときに作成しました。クッキーを設定して有効期限を更新する前に、もう一度cookie.domainを設定しなければなりませんでした。今私は1つのクッキーしか持っていません。
public void CreateCookie()
{
HttpCookie cookie = new HttpCookie(mConfig.webCookie);
TimeSpan span = new TimeSpan(0, 0, 30, 0);
DateTime time = DateTime.Now; ;
cookie["Username"] = mEncrypt.Encrypt(mUser.Username);
cookie.Domain = "mydomian.com";
cookie.Expires = time + span;
HttpContext.Current.Response.Cookies.Add(cookie);
}
public void UpdateCookie()
{
TimeSpan span = new TimeSpan(0, 0, 30, 0);
DateTime time = DateTime.Now;
HttpCookie cookie = HttpContext.Current.Request.Cookies[mConfig.webCookie];
// without specifying the domain the cookie will be set with the subdomain
cookie.Domain = "mydomain.com";
HttpContext.Current.Response.Cookies.Set(cookie);
HttpContext.Current.Response.Cookies[mConfig.webCookie].Expires = time + span;
}
実際のコードを表示すると、問題をより簡単に診断できます。 – LukeH
あまりにも真実ですが、どちらのコードが責任を負う可能性があるのかわかりませんでしたが、おそらく2つのクッキーの作成は何とかデフォルトの動作でした。以下の私の解決策を見てください。 – BeachBum