2011-01-03 41 views
5

Chúng tôi đang thảo luận về cách xác thực biểu mẫu thực sự hoạt động.Phiên bản yêu cầu xác thực biểu mẫu Net.

Có phải tất cả thông tin nhận dạng người dùng là đăng nhập được lưu trữ trong cookie hoặc là một số thông tin được lưu trữ trong phiên không?

Trả lời

12

Thông tin về người dùng được xác thực được lưu trữ trong FormsAuthenticationTicket trong cookie, theo mặc định có tên .ASPXAUTH.

Thông tin về phiên của người dùng tách biệt với thông tin về xác thực. Mã định danh cho phiên có thể được lưu trữ trong cookie (một cookie khác từ cookie xác thực) hoặc, như Henk đã chỉ ra, trong phiên không có cooki tức là một phần của URL.

Sự cố khi lưu trữ một số thông tin về xác thực trong phiên của người dùng là phiên không khả dụng cho đến một thời gian sau sự kiện xác thực (5 sự kiện sau IIRC) trong đường ống xử lý, trong PostAcquireRequestState. Điều này có nghĩa là bạn sẽ không có quyền truy cập vào dữ liệu xác thực trong phiên cho đến khi sau khi xác thực!

Có thể lưu trữ dữ liệu trong phiên và ghi đè IIdentityIPrincipal bằng dữ liệu đó, nhưng điều này có nghĩa là danh tính người dùng sẽ có một số dữ liệu cho các sự kiện trước khi phiên khả dụng và dữ liệu khác nhau cho các sự kiện sau phiên có sẵn, có thể hoặc không có vấn đề gì. Hơn nữa, bạn có thể muốn bảo mật mật mã dữ liệu đó trong phiên theo một cách nào đó.

Để trả lời câu hỏi tiêu đề của bạn, xác thực biểu mẫu không yêu cầu phiên; họ là những thực thể riêng biệt cần thiết cho các mục đích khác nhau.

3

Đối với cách Xác thực Mẫu hoạt động, bạn có thể kiểm tra các liên kết dưới đây:

hình thức xác thực làm việc trong các kịch bản nông trang web nơi mà các máy chủ xử lý một yêu cầu từ một Biểu mẫu người dùng được xác thực có thể khác với máy chủ thực sự đã xác thực người dùng và đã cấp vé xác thực Biểu mẫu và cookie trừ khi xác thực mẫu cookieless được định cấu hình. Để thực hiện công việc này, theo phần Kịch bản trang web của liên kết đầu tiên:

Để giải quyết vấn đề này, validationKey và decryptionSố khóa phải trùng nhau trên tất cả các máy tính trong trang Web. Để biết thêm thông tin về cấu hình phần tử machineKey, hãy xem Cách thực hiện: Cấu hình MachineKey trong ASP.NET 2.0.

cho thấy Xác thực biểu mẫu không lưu trữ bất kỳ thứ gì trong phiên ASP.NET. Nếu không, bạn cũng sẽ cần thiết lập một số hình thức quản lý phiên làm việc ngoài quy trình tại chỗ.

Tôi cũng đã có mẫu ứng dụng Xác thực mẫu trên tay và muốn chứng minh điều này một cách nhanh chóng. Sau khi được xác thực thông qua Xác thực biểu mẫu và hạ cánh trên trang chủ, tôi đã khởi động lại nhóm ứng dụng mà ứng dụng mẫu đang chạy trong đó sẽ giết phiên người dùng. Sau đó, tôi nhấp vào một trong các liên kết yêu cầu xác thực trên trang chủ và có thể truy cập liên kết đó mà không bị chuyển hướng đến trang đăng nhập.

+0

+1 Cảm ơn bạn đã thực hiện bằng chứng về khái niệm –

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