Where is .ASPXAUTH cookie

问题描述:

在javascript alert(document.cookie);不显示.ASPXAUTH饼干虽然嗅探器显示它,Where is .ASPXAUTH cookie

我需要它,因为我有一个AJAX请求到服务器,请求不应该发生,当用户已经登录,

如果我无法检查.ASPXAUTH出于安全原因,我应该怎么做,以检查用户是否已经登录。

感谢

身份验证cookie被标记为仅HTTP,这意味着它无法通过JavaScript访问。如果您想检查用户是否已通过身份验证,只需输出一个javascript变量,一个隐藏字段或您希望从代码隐藏的任何内容即可。然后你可以在JS中轻松检查。

+2

这比由于安全原因将httpOnlyCookies设置为false要好。 – Costa 2010-05-20 06:34:24

有一个.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="" />