【问题标题】:Request.Cookie does not work after deploy on IISRequest.Cookie 在 IIS 上部署后不起作用
【发布时间】:2017-12-20 11:12:31
【问题描述】:

以下代码在开发环境中运行,但在 Windows Server 2012 R2 上部署时,DsCookie cookie 无法获取从 cookie 创建中创建的值。

它将 MVC 4 与 Entity Framework v4 和 jQuery 结合使用。

HttpCookie ds_id = new HttpCookie("ds");
ds_id.Value = reqCookie.ToString();
ds_id.Expires = DateTime.Now.AddHours(1);
Response.SetCookie(ds_id);
                Response.Flush();

private HttpCookie DsCookie
{
    get
    {
        return Request.Cookies["ds"];
    }
}

有谁知道为什么我的解决方案只能在开发环境中工作而不是实际运行?

【问题讨论】:

    标签: c# asp.net-mvc iis windows-server-2012-r2 httpcookie


    【解决方案1】:

    服务器时间可能与您的本地时间不同。

    代码

     DateTime.Now.AddHours(1); 
    

    占用服务器时间。 如果服务器时间比你的本地电脑时间早 1 小时,那么会立即创建并删除该 Cooke。

    检查服务器时间,如果是这种情况,请更改过期时间

    ds_id.Expires = DateTime.Now.AddHours(10); //Or more. 
    

    或者你可以精确的时差和:

      ds_id.Expires = DateTime.Now.AddHours(1 + time difference between the server and your local time); 
    

    【讨论】:

    • 谢谢....我花了一整天的时间来解决这个问题,你是救命稻草..现在我将它设置为 100 小时,以后会更改它
    • 我为你感到高兴!
    【解决方案2】:

    你没有提供各种各样的信息,所以这是我根据我能想到的猜测。

    检查您的 IIS 设置

    在您的 IIS 设置下,前往您的网站部署,然后在功能面板下,导航至 IIS > 身份验证 > 检查您是否采用了正确的身份验证方法。您还可以验证您是否允许所有用户通过 cookie 身份验证进行身份验证

    Web.config 必须允许 IIS 向您发送 cookie

    如果您的 web.config 文件设置不正确,它可能会阻止您的部署发送 cookie。通读并检查它是否允许 IIS 将它们发送出去。

    尝试像这样添加一天

    如果您没有收到 cookie,可能是 cookie 被立即删除了?这是罕见的,但它会发生。请尝试这样做:

    ds_id.Expires = DateTime.Now.AddDays(1d);
    

    这应该使 cookie 持久化

    检查服务器的日期时间是否正确

    如果不是,这很可能是问题的根源。这听起来很愚蠢,但过去对某些人来说这是一个合理的问题。

    确保您的浏览器接受 cookie

    如果您的浏览器中有任何拒绝 cookie 的选项,这将阻止您接受登录,因此几乎就像您无法登录一样。

    如果您在进行这些修复后仍有问题,请告知我们并提供更多详细信息,我们或许可以帮助您缩小问题范围。


    作为附加说明,这是一种更好(更清洁)的方法:

    var dsCookie = new HttpCookie("dsCookie")
    {
        Value = reqCookie.ToString(),
        Expires = DateTime.Now.AddHours(1)
    };
    
    Response.Cookies.Add(dsCookie);
    

    【讨论】:

      猜你喜欢
      • 2019-05-12
      • 2022-01-25
      • 1970-01-01
      • 2017-09-13
      • 2015-04-28
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多