Linux上的mono返回不同的cookie集

时间:2012-11-15 04:08:55

标签: asp.net-mvc apache cookies mono mod-mono

我在apache2 undo ubuntu上运行单声道2.10.8.1上的MVC站点。我有一项服务,检查凭据和设置cookie,如果一切都好。在Windows中我没有问题,只有一个cookie:.ASPXAUTH。但是,当我部署到Linux服务器时,它设置了两个cookie ASP.NET_SessionId.MONOAUTH

我的问题是为什么它是linux中的两个cookie和一个windows中的一个,我怎样才能摆脱ASP.NET_SessionId cookie?

我正在设置这样的cookie:

    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;
    }

1 个答案:

答案 0 :(得分:1)

我认为Mono没有任何问题。事实上,您提到的两个Cookie - ASP.NET_SessionId.MONOAUTH会话表单授权 Cookie,它们实际上是不同的。
要摆脱ASP.NET_SessionId,您可以根本不使用会话或使用无Cookie会话(<sessionSate> on MSDN)。

注意:您还应该在Windows上获得两个Cookie。如果没有,这可能意味着您没有点击任何在SessionState中设置某个值的MVC操作。如果您设法找到这样的动作,您也将在Windows上获得两个cookie。