2010-05-19 22 views
9

Trong cảnh báo javascript (document.cookie); không hiển thị .ASPXAUTH Cookie mặc dù một sniffer được hiển thị nó,Đâu là .ASPXAUTH cookie

tôi cần nó bởi vì tôi có một yêu cầu AJAX đến máy chủ, yêu cầu không nên diễn ra khi người dùng đã đăng nhập,

nếu tôi không thể kiểm tra .ASPXAUTH vì lý do an ninh, tôi nên làm gì để kiểm tra xem người dùng đã đăng nhập.

Cảm ơn

Trả lời

9

các cookie xác thực được đánh dấu bằng http-chỉ, có nghĩa là nó không thể được truy cập bằng javascript. Nếu bạn muốn kiểm tra là người dùng được xác thực, chỉ cần tạo ra một biến javascript, một lĩnh vực ẩn hoặc bất cứ điều gì bạn thích từ mã của bạn phía sau. Sau đó bạn có thể kiểm tra điều này một cách dễ dàng trong JS.

+2

Điều này tốt hơn là đặt httpOnlyCookies thành sai vì lý do bảo mật. – Costa

4

Có một tập hợp cookie .ASPXAUTH, bạn rõ ràng là chính xác. Nó được sử dụng để xác định xem người dùng nếu đăng nhập

Để có được những gì bạn cần nhìn qua web.config của bạn cho phần cấu hình:.

<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> 

Khi người dùng được xác thực thành công một cookie sẽ được thiết lập dựa vào tham số name = "ExampleSite.FormsAuthentication". Nó sẽ hết hạn sau khi đăng xuất hoặc sau khi hết hạn phiên. Bạn sẽ thấy một cookie trên Chrome/FFX hoặc bất kỳ trình duyệt nào bạn đang sử dụng được gọi là ExampleSite.FormsAuthentication với một giá trị được mã hóa. Rõ ràng tham số tên bạn đang sử dụng sẽ khác và không phải ExampleSite.FormsAuthentication nhưng bạn có ý tưởng.

Bạn luôn có thể kiểm tra xem cookie có tồn tại không. Như đã đề cập, hãy cẩn thận với chỉ http (có liên quan đến JS). Vì bạn cũng có thể ghi đè giá trị đó trong web.config để bạn có thể truy cập nó bằng JS.

<httpCookies httpOnlyCookies="false" requireSSL="false" domain="" /> 
Các vấn đề liên quan