2008-08-28 30 views

Trả lời

49

Nếu bạn đang sử dụng ASP.NET 2.0 hoặc cao hơn, bạn có thể bật tính năng này trong tệp Web.config. Trong <system.web> phần, thêm dòng sau:

<httpCookies httpOnlyCookies="true"/> 
+0

Điều này không hiệu quả đối với tôi. Tôi đã thử "" và cả hai cài đặt đều không hoạt động. – rolls

+0

@rolls Tôi có cùng một vấn đề. Bạn đã tìm thấy một giải pháp hay nguyên nhân? – Neothor

+0

Có, tôi đã làm điều đó trong mã. Kiểm tra các câu trả lời dưới đây. – rolls

10

Với đạo cụ cho Rick (bình luận thứ hai trong bài đăng trên blog được đề cập), đây là số MSDN article trên httpOnlyCookies.

Điểm mấu chốt là bạn chỉ cần thêm phần sau trong phần system.web của bạn trong web.config của bạn:

<httpCookies domain="" httpOnlyCookies="true|false" requireSSL="true|false" /> 
+7

Nhân tiện - không thực sự sử dụng tên miền = "Chuỗi" - hoặc đặt tên miền hợp lệ hoặc loại bỏ thuộc tính đó. –

+0

@JonGalloway Cảm ơn bạn đã nắm bắt, tôi đã cập nhật mã cho phù hợp. –

+0

@ Dillie-O cái gì có thể khiến nguyên tố này bị khóa? khi tôi đặt nó trong tệp web.config của mình, tôi nhận được lỗi sau "phần tử httpcookies đã bị khóa ở cấu hình mức cao hơn" – StackTrace

7

Nếu bạn muốn làm điều đó trong mã, sử dụng System.Web.HttpCookie.HttpOnly tài sản.

Đây là trực tiếp từ các tài liệu MSDN:

// Create a new HttpCookie. 
HttpCookie myHttpCookie = new HttpCookie("LastVisit", DateTime.Now.ToString()); 
// By default, the HttpOnly property is set to false 
// unless specified otherwise in configuration. 
myHttpCookie.Name = "MyHttpCookie"; 
Response.AppendCookie(myHttpCookie); 
// Show the name of the cookie. 
Response.Write(myHttpCookie.Name); 
// Create an HttpOnly cookie. 
HttpCookie myHttpOnlyCookie = new HttpCookie("LastVisit", DateTime.Now.ToString()); 
// Setting the HttpOnly value to true, makes 
// this cookie accessible only to ASP.NET. 
myHttpOnlyCookie.HttpOnly = true; 
myHttpOnlyCookie.Name = "MyHttpOnlyCookie"; 
Response.AppendCookie(myHttpOnlyCookie); 
// Show the name of the HttpOnly cookie. 
Response.Write(myHttpOnlyCookie.Name); 

Làm nó trong mã cho phép bạn chọn lọc chọn cookie là HttpOnly và không.

3

Thật thú vị khi đặt <httpCookies httpOnlyCookies="false"/> dường như không tắt httpOnlyCookies trong ASP.NET 2.0. Kiểm tra bài viết này về SessionID and Login Problems With ASP .NET 2.0.

Có vẻ như Microsoft đã quyết định không cho phép bạn tắt tính năng này khỏi web.config. Kiểm tra điều này post on forums.asp.net

Các vấn đề liên quan