Where is .ASPXAUTH cookie
问题描述:
在javascript alert(document.cookie);不显示.ASPXAUTH饼干虽然嗅探器显示它,Where is .ASPXAUTH cookie
我需要它,因为我有一个AJAX请求到服务器,请求不应该发生,当用户已经登录,
如果我无法检查.ASPXAUTH出于安全原因,我应该怎么做,以检查用户是否已经登录。
感谢
答
身份验证cookie被标记为仅HTTP,这意味着它无法通过JavaScript访问。如果您想检查用户是否已通过身份验证,只需输出一个javascript变量,一个隐藏字段或您希望从代码隐藏的任何内容即可。然后你可以在JS中轻松检查。
答
有一个.ASPXAUTH cookie集,你显然是正确的。它是用来当用户以确定是否登录
要得到你需要查看你的web.config的配置部分:
<authentication mode="Forms">
<forms
loginUrl="~/login.aspx"
protection="All"
timeout="30"
name="ExampleSite.FormsAuthentication"
path="/"
requireSSL="false"
slidingExpiration="true"
defaultUrl="index.aspx"
cookieless="UseDeviceProfile"
enableCrossAppRedirects="false"
/>
</authentication>
当用户已通过认证的cookie将被设置基于名称=“ExampleSite.FormsAuthentication”参数。它将在注销后或会话过期后过期。您将在Chrome/FFX上看到一个cookie,或者您正在使用的任何浏览器都会以加密值调用ExampleSite.FormsAuthentication。显然你使用的名称参数是不同的,而不是ExampleSite.FormsAuthentication,但你明白了。
您可以随时检查并查看cookie是否存在。如前所述,要小心http-only(与JS的关系)。因为你也可以在web.config中重写这个值,所以你可以用JS访问它。
<httpCookies httpOnlyCookies="false" requireSSL="false" domain="" />
这比由于安全原因将httpOnlyCookies设置为false要好。 – Costa 2010-05-20 06:34:24