2014-10-07 148 views
1

我有两个页面P1.aspx(登录页面)和P2.aspx(重定向页面),都使用SSL配置。 在P1.aspx中,我创建了“Secure”属性设置为“true”并添加到P1.aspx的响应对象中的身份验证cookie。安全身份验证cookie Asp.Net

但是,当页面从P1.aspx重定向到P2.aspx时,P2.aspx请求中的身份验证Cookie将cookie的“Secure”属性显示为“false”。我不明白为什么“安全”属性在请求cookie中设置为“false”。

+1

如果您在服务器端检查'Secure',那么它将不会是真实的,因为浏览器不会返回此属性。但是如果你在Chrome DevTools中检查它,那么你可以发现这个cookie的Secure = true – 2014-10-07 06:24:26

+0

响应对象(P1.aspx)属性显示“true”,但在请求对象(P2.aspx)中它是“false” 。这两个cookie应该是一样的吗?客户端可以将此属性设置为false吗? – 2014-10-07 06:31:18

回答

1

如果您在服务器端检查安全,那么它不会是真实的,因为浏览器不会发回此属性。但是如果你在Chrome DevTools中检查它,那么你可以发现这个cookie的Secure = true。

这里是wiki报价:

除了名称 - 值对,服务器也可以设置这些cookie的属性:一个Cookie域,路径,过期时间或最大年龄, 安全标志,并仅Http旗。 浏览器不会将Cookie 属性发送回服务器。他们只会发送cookie的 名称 - 值对。 Cookie属性由浏览器用于确定何时删除cookie,阻止cookie或是否向服务器发送cookie(名称 - 值对) 。

因此,在请求中不安全属性并且在发送时将其置于响应中是完全正常的。浏览器不会在每个请求中发回,但它仍然使用它,如果请求不会是HTTPS,那么浏览器将不会使用这个cookie