在javascript (document.cookie)中;不显示.ASPXAUTH Cookie,尽管嗅探器正在显示它,
我需要它,因为我有一个对服务器的AJAX请求,该请求不应该在用户已经登录时发生,
如果出于安全原因无法检查.ASPXAUTH,我应该如何检查用户是否已经登录。
谢谢
发布于 2010-05-19 22:57:14
身份验证cookie被标记为仅http-only,这意味着javascript无法访问它。如果你想检查用户是否通过了身份验证,只需从代码隐藏中输出一个javascript变量、一个隐藏字段或任何你喜欢的东西。然后,您可以在JS中轻松地检查这一点。
发布于 2010-05-19 23:10:51
有一个.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,并带有加密值。显然,您使用的name参数会有所不同,而不是ExampleSite.FormsAuthentication,但您已经明白了这一点。
您可以随时检查并查看cookie是否存在。如前所述,要小心http-only (与JS相关)。因为您还可以在web.config中覆盖该值,以便可以使用JS访问它。
<httpCookies httpOnlyCookies="false" requireSSL="false" domain="" />https://stackoverflow.com/questions/2866619
复制相似问题