Tôi có một ứng dụng MVC 2 beta cơ bản, nơi tôi đang cố gắng triển khai một lớp Identity và Principal.Thực hiện một danh tính tùy chỉnh và IPrincipal trong MVC
Tôi đã tạo các lớp của mình triển khai giao diện IIdentity và IPrincipal, khởi tạo chúng và sau đó gán đối tượng CustomPrincipal cho Context.User của tôi trong Application_AuthenticateRequest của Global.asax.
Điều này tất cả đều thành công và các đối tượng trông đẹp. Khi tôi bắt đầu hiển thị Chế độ xem, các trang hiện không thực hiện được. Sự thất bại đầu tiên là trong giao diện LogoOnUserControl mặc định trên các dòng mã sau đây:
[ <%= Html.ActionLink("Log Off", "LogOff", "Account") %> ]
Nếu tôi kéo ra nó sau đó thất bại trên "Html.ActionLink" dòng khác nhau của mã.
Các lỗi tôi nhận được là:
Một ngoại lệ của loại 'System.Runtime.Serialization.SerializationException' xảy ra ở WebDev.WebHost40.dll nhưng không được xử lý theo mã người dùng
Thông tin bổ sung: Loại không phải là được giải quyết cho thành viên 'Model.Entities.UserIdentity, Model, Phiên bản = 1.0.0.0, Văn hóa = trung lập, PublicKeyToken = null'.
Có một số thuộc tính bổ sung mà tôi cần triển khai trong Danh tính của mình để sử dụng Nhận dạng tùy chỉnh trong MVC không? Tôi đã cố gắng để thực hiện [Serializable()] trong lớp Identity nhưng nó dường như không có tác động.
CẬP NHẬT: Tôi đã thử 3-4 cách khác để triển khai điều này nhưng vẫn không thành công với cùng một lỗi. Nếu tôi sử dụng GenericIdentity/GenericPrincipal lớp học trực tiếp nó không lỗi.
GenericIdentity ident = new GenericIdentity("jzxcvcx");
GenericPrincipal princ = new GenericPrincipal(ident, null);
Context.User = princ;
Nhưng điều này khiến tôi không nơi nào vì tôi đang cố gắng sử dụng CustomIdentity để giữ một vài thuộc tính. Nếu tôi thực hiện các giao diện IIdentity/IPrincipal hoặc kế thừa GenericIdentity/GenericPrincipal cho CustomIdentity/CustomPrincipal của nó, nó không thành công với lỗi ban đầu ở trên.
Re: up vote ... Bạn cũng thấy một vấn đề tương tự? – Jay