我有一个DotNetNuke网站,默认情况下人们匿名使用。当他们想要登录时,他们会点击一个链接,将他们带到/DesktopModules/AuthenticationServices/ActiveDirectory/WindowsSignin.aspx
,然后将其重定向回首页。
在首页上有一些jQuery,它旨在将登录过程中创建的cookie从永久更改为基于会话(因此当用户浏览器关闭时它们将消失)。
然而,虽然我可以在jQuery中创建和阅读我自己的cookie(使用cookies插件),但我无法查看登录期间在服务器端创建的cookie。
下图显示了DotNetNuke网站的Cookie。
Demo1
和Demo3
由jQuery创建,代码如下:
$.cookie('Demo1', 'Fred', { expires: 0.005, path: '/' } );
$.cookie('Demo3', 'Peter', { expires: 0.005, path: '/', domain: 'internet.nt.avs' } );
然后可以使用以下代码阅读这些cookie:
alert( $.cookie('Demo3') );
然而,如果我尝试阅读其他一个我没有通过jQuery设置的cookie,我会返回null
:
alert( $.cookie('.DOTNETNUKE') );
为什么会这样?
答案 0 :(得分:5)
ASP.NET通过FormsAuthentication创建的Cookie出于安全原因设置了HttpOnly标志。因此,无法通过javascript访问它们。