在javascript alert(document.cookie);不顯示.ASPXAUTH餅乾雖然嗅探器顯示它,Where is .ASPXAUTH cookie
我需要它,因爲我有一個AJAX請求到服務器,請求不應該發生,當用戶已經登錄,
如果我無法檢查.ASPXAUTH出於安全原因,我應該怎麼做,以檢查用戶是否已經登錄。
感謝
在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