11

Tôi đang thực hiện một lớp Tuỳ chỉnh danh tính cho một 4,0 trang web ASP.Net với hình thức xác thực dựa trên hướng dẫn này:
Forms Authentication Configuration and Advanced Topics
Chiều dài tối đa của FormsAuthenticationTicket.UserData tài sản

Tôi muốn để lưu trữ thông tin người dùng thêm (First/Họ, Giới tính, Khu vực Địa lý, Hình ảnh Tiểu sử Hình thu nhỏ Tên tệp, v.v ...) trong AuthCookie. Có một cảnh báo về msdn.microsoft.com về việc giới hạn kích thước của thuộc tính UserData.

Tôi không thể tìm thấy giới hạn ký tự cuối cùng cho thuộc tính UserData. Chỉ có toàn bộ được mã hóa cookie mới có kích thước dưới 4096 byte.

Bất kỳ ai biết giới hạn ký tự tối đa tôi nên giả định trong mã của mình? Hoặc có ý tưởng tốt hơn về cách lưu trữ những thông tin người dùng cần thiết thường xuyên này?

Cảm ơn

Trả lời

6

Không có giới hạn rõ ràng - kích thước tối đa sẽ tùy thuộc vào độ dài của tên người dùng. Ngoài ra kích thước tối đa của một cookie (hoặc của một URL nếu bạn đang sử dụng vé cookieless) là phụ thuộc vào trình duyệt.

Bạn có thể lưu trữ loại thông tin phía máy chủ đó (ví dụ: Phiên), có thể với một số loại khóa/id trong cookie. Một cách để làm điều này sẽ là implement a custom ProfileProvider.

Một bất lợi khi lưu trữ thông tin dành riêng cho ứng dụng như bạn mô tả trong cookie FormsAuthentication là bạn sẽ cần thiết kế lại nếu ứng dụng của bạn cần chuyển từ FormsAuthentication sang một số phương pháp xác thực khác (ví dụ: WindowsAuthentication).

Cá nhân tôi chỉ lưu trữ thông tin có liên quan để xác thực và có thể ủy quyền trong cookie FormsAuthentication, vì bất kỳ điều gì khác sẽ là increase coupling.