C#.Net cookie在生产中具有价值,但在localhost上没有

时间:2017-05-16 19:46:52

标签: c# .net cookies

我有一个cookie,它包含后端处理的tmp文件名。

    try {
        var cookie = new HttpCookie("TargetExcelFile") {
            Name = "TargetExcelFile",
            Path = "/",
            Secure = true,
            Expires = DateTime.Now.AddDays(1d),
            Value = file
        };

        Response.Cookies.Add(cookie);
    } catch (Exception e) {
        throw new Exception("Create file cookie failed: " + e.Message);
    }

在生产中它工作正常,但在localhost上,浏览器中的值为空。我可以设置断点,并看到cookie在Response.Cookies.Add(cookie);行的两种情况下都有值。

localhost上运行时,会创建cookie,但浏览器中没有值。

我认为Secure标志可能是localhost上的问题所以我做了以下事情:

    try {
        var cookie = new HttpCookie("TargetExcelFile") {
            Name = "TargetExcelFile",
            Path = "/",
#if DEBUG
            Secure = false,
#else
            Secure = true,
#endif
            Expires = DateTime.Now.AddDays(1d),
            Value = file
        };

        Response.Cookies.Add(cookie);
    } catch (Exception e) {
        throw new Exception("Create file cookie failed: " + e.Message);
    }

......它没有帮助。

想法?

1 个答案:

答案 0 :(得分:1)

可能<httpCookies httpOnlyCookies="true" requireSSL="false" /> 节点上的域属性设置为特定域。删除开发的域名:

web.config

此设置位于system.web下的function deleteDiv() { $("#buttonDiv").parent().remove(); } 文件中。

this question中查看更多信息。