浏览器中提供响应cookie

时间:2014-04-15 21:05:42

标签: c# javascript asp.net cookies

昨天我问了一个非常相似的问题,但是我做了一些进一步的研究,昨天问题的标题并不准确。

我有一个ASP.NET / C#应用程序。在我的服务器端代码中,我设置了几个cookie:MyLogin和MySession。在我的C#代码中,我添加了将这些代码添加到Response.Cookies中。我看到他们回到了提琴手的回应中。

我的服务器端代码是通过JavaScript调用的,如下所示:

document.location.href = myURL;
debugger;

在小提琴手中,我看到MyLogin cookie的过期时间设置为从今天开始的一个月。 MySession没有过期。

我正在使用IE开发人员工具逐步完成上面的JavaScript代码。当我在上面的调试器行停止时,运行我在与.aspx页面相同的目录中创建的以下测试页面:

<html>
<head>
<script>
    var myCookies = "<h1>Cookies</h1><br/>";
    myCookies += document.cookie;
    //alert(myCookies);
    document.write(myCookies);
</script>
</head>
<body>
</body>
</html>

我看到我使用document.location.href = myURL发送的cookie,但没有在响应中发回的cookie。我希望每个http请求/响应中设置的cookie会随着每个请求一直被发送到浏览器,直到它们过期。

我绝对没有看到MySession和MyLogin Cookie在myURL的加载中通过JavaScript调用的Web服务调用被忽略了。

昨天有人建议cookie可能是httponly,但MyLogin和MySession cookie上的http属性在我的C#代码中是假的。有没有办法在Fiddler中查看此属性?

-Eric

1 个答案:

答案 0 :(得分:0)

我发现问题与cookie网址中的区分大小写有关。我正在设置cookie

http://myserver/mydir 

但是试图在

中阅读它们
http://myserver/MyDir.

请参阅Why are cookie paths case sensitive?

-Eric