2008-12-04 39 views
10

Tôi có một vài câu hỏi về thời gian và cách thức mà ViewState được mã hóa trong asp.net 3.5. Ví dụ, nếu tôi có một mục machinekey trong web.config của tôi như: decryptionKey = "AutoGenerate, IsolateApps" xác nhận = "AES" giải mã = ​​"Auto" />asp.net mã hóa ViewState

là ViewState được mã hóa vào thời điểm này ? Hoặc tôi có cần phải chỉ định viewStateEncryptionMode trong phần trang không?

Ngoài ra, có thể mã hóa cookie formsauthentication, nhưng không mã hóa ViewState cùng một lúc?

Cảm ơn bạn đã được trợ giúp.

Trả lời

12

Các điều khiển trên trang có thể yêu cầu mã hóa đó được sử dụng cho ViewState, nhưng ngay cả yêu cầu này cũng có thể bị ghi đè bởi cài đặt trang.

Điều tra ViewStateEncryptionMode có ba giá trị: Tự động, Luôn luôn và Không bao giờ. Giá trị mặc định là Tự động.

ViewStateEncryptionMode.Auto

Trong chế độ này, ASP.NET sẽ mã hóa các ViewState cho một trang nếu có kiểm soát trên trang yêu cầu nó. Lưu ý rằng điều này có nghĩa là tất cả các ViewState được mã hóa, không chỉ là ViewState cho điều khiển yêu cầu nó. Phần lớn chi phí hiệu năng được liên kết với mã hóa là ở trên đầu. Vì vậy, mã hóa toàn bộ ViewState nhanh hơn so với thực hiện các hoạt động mã hóa riêng biệt nếu nhiều hơn một điều khiển đưa ra yêu cầu.

ViewStateEncryptionMode.Never

Như bạn mong đợi, trong chế độ này ASP.NET sẽ không mã hóa các ViewState, ngay cả khi ứng dụng được thiết lập cho việc mã hóa và điều khiển trên trang đã yêu cầu nó. Nếu bạn biết rằng không có dữ liệu nào liên quan đến trang cần được mã hóa, thì có thể an toàn để đặt chế độ thành Không bao giờ. Tuy nhiên, tại thời điểm này, hiếm khi tài liệu về kiểm soát tiết lộ những gì đang được lưu trong ViewState, vì vậy bạn sẽ cần phải cẩn thận nếu có cơ hội dữ liệu nhạy cảm có thể bị lộ.

ViewStateEncryptionMode.Always

Trong chế độ này, ASP.NET không chờ đợi một điều khiển trong trang để yêu cầu mã hóa. ViewState luôn được mã hóa. Khi làm việc với dữ liệu nhạy cảm, cách tốt nhất là sử dụng mã hóa.

Nguồn: http://msdn.microsoft.com/en-us/library/aa479501.aspx

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