マシンキーを変更した後、同じサブドメインにとどまった後、ASP.NET で Cookie を削除する方法は?
現在、example.domain.com に Cookie がありますが、cookie が foo.domain.com でも機能するように、ワイルドカード Cookie (.domain.com) に移行する必要があります。これを行うために、asp.net ログイン Cookie を暗号化/復号化するマシン キーを手動で設定しました。問題は、古い Cookie を既に持っているユーザーが、サイトにアクセスしようとすると (何らかの理由で古い Cookie を復号化しようとするため)、CryptographicException を受け取ることです。Cookie の名前を変更しましたが、役に立ちませんでした - それでもエラーが発生します。そこで、古い Cookie をすべて削除することにしました。次のコードを使用して、ログイン サイトでこれを実行しようとします。
var myCookies = Request.Cookies.AllKeys;
foreach (var cookieName in myCookies)
{
var cookie = Request.Cookies[cookieName];
if (cookie == null) continue;
cookie.Value = "written " + DateTime.Now;
cookie.Expires = DateTime.Now.AddYears(-1);
cookie.Domain = "example.domain.com"
Response.Cookies.Add(cookie);
}
コードに到達して実行されますが、Google Chrome リソースを調べると、Cookie がまだ残っています。したがって、明らかに削除は機能しませんでした。いくつかの異なる方法を試しました (path ="/" を追加する、cookie.Value を cookie.Value に設定するなど)。何らかの奇妙な理由で Cookie がまだ残っており、それらを削除することはできません。
元の質問に戻ると、Cookie でワイルドカード ドメインに変更し、web.config でマシン キーを明示的に指定した後、ASP.NET MVC 4.5 で Cookie を削除するにはどうすればよいでしょうか。