4

apache2 undo ubuntu の mono 2.10.8.1 で MVC サイトを実行しています。資格情報をチェックし、問題がなければ Cookie を設定するサービスがあります。Windows では問題なく、Cookie を 1 つだけ取得しました: .ASPXAUTH. ただし、Linux サーバーにデプロイすると、2 つの CookieASP.NET_SessionId.MONOAUTH.

私の質問は、Linux では 2 つの Cookie であり、Windows では 1 つの Cookie である理由と、どうすればASP.NET_SessionIdCookieを取り除くことができるかということです。

私はこのようにクッキーを設定しています:

    Response.AppendCookie(BuildAuthenticationCookie(login, data));

    public static HttpCookie BuildAuthenticationCookie(string login, string ticketData)
    {
        var authTicket = new FormsAuthenticationTicket(2, login, DateTime.Now,
            DateTime.Now.AddMinutes(500), false, ticketData);
        var authCookie = new HttpCookie( FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(authTicket))
        {
            HttpOnly = true,
            Secure = SiteSettings.CookiesSslOnly,
            Expires = DateTime.Now.AddMinutes(SiteSettings.AuthCookieExpirationTime)
        };
        return authCookie;
    }
4

1 に答える 1

1

モノには問題ないと思います。実際、あなたが言及した 2 つの CookieASP.NET_SessionId.MONOAUTHSession CookieとForms Authorization Cookie であり、実際には異なります。
を取り除くにはASP.NET_SessionId、セッションをまったく使用しないか、Cookie を使用しないセッション ( MSDN の <sessionSate> ) を使用します。

: Windows でも 2 つの Cookie を取得する必要があります。そうでない場合は、おそらく、SessionState に何らかの値を設定する MVC アクションにヒットしなかったことを意味します。そのようなアクションを見つけることができた場合、Windows でも 2 つの Cookie を取得します。

于 2012-11-15T15:09:51.447 に答える