哪里是.ASPXAUTH cookie

时间:2010-05-19 14:49:58

标签: asp.net authentication cookies

在javascript alert(document.cookie)中;虽然嗅探器正在显示它,但不显示.ASPXAUTH Cookie,

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

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

由于

2 个答案:

答案 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="" />