在javascript alert(document.cookie)中;虽然嗅探器正在显示它,但不显示.ASPXAUTH Cookie,
我需要它,因为我有一个服务器的AJAX请求,当用户已经登录时不应该发出请求,
如果出于安全原因无法检查.ASPXAUTH,我应该怎么做以检查用户是否已经登录。
由于
答案 0 :(得分:9)
身份验证cookie标有http-only,这意味着javascript无法访问它。如果要检查用户是否经过身份验证,只需输出一个javascript变量,一个隐藏字段或您喜欢的代码隐藏字段。然后,您可以在JS中轻松查看。
答案 1 :(得分:4)
有一个.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>
当用户成功通过身份验证后,将根据name =“ExampleSite.FormsAuthentication”参数设置cookie。它将在注销后或会话到期后过期。您将在Chrome / FFX或您正在使用的任何浏览器上看到一个名为ExampleSite.FormsAuthentication且带有加密值的Cookie。显然,您使用的名称参数将不同,而不是ExampleSite.FormsAuthentication,但您明白了。
您可以随时查看Cookie是否存在。如上所述,请注意仅限http(与JS有关)。您也可以在web.config中覆盖该值,以便可以使用JS访问它。
<httpCookies httpOnlyCookies="false" requireSSL="false" domain="" />