2

匿名の Cookie をクリアする API はありますか?

4

4 に答える 4

4

はい!

 System.Web.Security.AnonymousIdentificationModule.ClearAnonymousIdentifier()

この便利な記事を参照してください: (匿名ユーザー設定の移行)

匿名プロファイルを移行するための最良の方法もスタックオーバーフローの質問です。

于 2009-10-24T22:49:46.440 に答える
0

最初は「AnonymousIdentificationModule.ClearAnonymousIdentifier()」の問題に直面していました。エラーは「機能が無効になっている場合、またはユーザーが匿名の場合、ClearAnonymousIdentifierはサポートされていません」でした。

この問題は、ユーザーitsefが匿名ユーザーであるときに匿名IDをクリアしようとした場合にのみ発生します。匿名ユーザーが他の匿名ユーザーのCookieをクリアできないことを意味します。

これを行うには、ユーザーが認証された(ログインしたユーザー)場合に次のようなコードを配置します。

if(Request.IsAuthenticated)
{
   AnonymousIdentificationModule.ClearAnonymousIdentifier();
}

これでうまくいきます。

于 2011-12-29T06:52:45.610 に答える
0

私は MVC4 を使用しています。私のシナリオでは、ユーザーがログインしなくても新しい Cookie が自動生成されるように、匿名の Cookie を削除できるようにしたいと考えています。 AnonymousIdentificationModule.ClearAnonymousIdentifier は、ユーザーが認証されている場合にのみ呼び出すことができるため、このシナリオでは機能しません。(その関数へのオプションのパラメータがいいようです。) その代わりに、過去の有効期限で匿名の Cookie を書き換える必要があります。これを行うには、匿名ユーザーが必要なときにいつでもアクセスして、新しい匿名ユーザーとして再起動できる基本的なアクション メソッドを作成しました。

    [HttpGet]
    [AllowAnonymous]
    public ActionResult ClearMyCookie()
    {
        HttpCookie cookie = new HttpCookie(".ASPXANONYMOUS");
        cookie.Expires = DateTime.Now.AddDays(-10);
        Response.Cookies.Add(cookie);
        // Make sure to also do Session.Clear() if you're using session.
        return RedirectToAction("index", "home");
    }

「.ASPXANONYMOUS」を Cookie の名前に変更します。上記のデフォルトの匿名名を使用しています。

于 2013-03-21T20:30:36.203 に答える
-1

これがあなたの求めているものかどうかはわかりませんが、次のようにしてブラウザに送信されたすべての Cookie をクリアできます。

Response.Cookies.Clear();

認証に問題がある場合は、質問を明確にすることをお勧めします。

于 2009-02-17T12:46:34.467 に答える