asp.net-mvc - Linux 上的 mono 返回不同的 cookie 集

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

我有一个在 apache2 undo ubuntu 上的 mono 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;
    }

最佳答案

我认为Mono没有什么问题。事实上,您提到的两个 cookie - ASP.NET_SessionId.MONOAUTHSessionForms Authorization cookie ,这确实是不同的。
要摆脱 ASP.NET_SessionId,您可以根本不使用 session 或使用无 cookie session ( <sessionSate> on MSDN )。

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

关于asp.net-mvc - Linux 上的 mono 返回不同的 cookie 集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13391435/

相关文章:

javascript - Server.MapPath(~) 替代方案

c# - 从 DataTable 填充 SelectList

node.js - 如何在 amazon ec2 中同时运行 Node 和 apache?

javascript - 在设置 cookie 后运行脚本而不重新加载页面

javascript - 导航到另一个页面时,Mootools 弹出窗口不会保持关闭状态

javascript - 更新购物车中的值

jquery - asp.net mvc "The required anti-forgery form field"__RequestVerificationToken“不存在。”

java - Tomcat 和 Ajax 问题

apache - 我正在使用 red hat,Mod_proxy 工作但页面上的链接不适用于 tomcat

javascript - 使用 CORS 请求设置 Cookie