2012-04-16 55 views
5

Cách ưa thích để tích hợp nhà cung cấp tư cách thành viên tùy chỉnh với Orchard là gì?Thành viên tùy chỉnh Orchard CMS

Tôi đã thấy một vài bài viết xung quanh việc thực hiện một IMembershipService mới và IUserService (từ Orchard.Users) và sau đó có các module khác như OpenAuthentication mà dường như để làm một nhiều hơn thế nữa (nhưng vẫn sử dụng UserPart? ?).

Chúng tôi đã có một nhà cung cấp thành viên ASP.NET được viết, điều này có thể được tích hợp như vậy không?

Trả lời

7

Triển khai tùy chỉnh IMembershipService là một cách để thực hiện nếu bạn không muốn sử dụng mô hình mặc định Orchard.Users. Hữu ích khi bạn vẫn muốn thực hiện xác thực biểu mẫu, nhưng chỉ lưu trữ dữ liệu xác thực ở một nơi khác, không phải trong UserPart.

Nếu bạn muốn tạo lược đồ xác thực hoàn toàn tùy chỉnh, ghi đè lược đồ mặc định dựa trên biểu mẫu (tên người dùng + mật khẩu), ghi đè IAuthenticationService.

Vì vậy, nói chung:

  • IMembershipProvider là về quản lý dữ liệu xác thực (tạo/lấy users)
  • IAuthenticationProvider là về thực hiện chứng thực (đăng nhập/ra/vào được sử dụng, vv hiện hành)

Tùy thuộc vào nhu cầu của bạn, bạn có thể ghi đè một hoặc cả hai.

Mô-đun xác thực phổ biến, như mô-đun xác thực, thêm các tùy chọn xác thực bổ sung vào tùy chọn mặc định hiện tại mà không thực sự thay thế nó, IIRC.

+3

Nếu triển khai IMembershipService bằng cách sử dụng kho lưu trữ dữ liệu riêng biệt, thuộc tính ContentItem đến từ đâu cho IUser được trả về? – Oll

+0

Hmmm, câu hỏi hay. 'IUser' cần phải là một mục nội dung để nó làm phức tạp mọi thứ một chút, nhưng chỉ một chút. Bạn có thể tạo một mục nội dung (ví dụ: "Người dùng") không có phần nào và đặt giá trị đó làm giá trị của thuộc tính 'ContentItem' cho mỗi' IUser'. Nếu không gắn các phần khác cho người dùng trong kịch bản của bạn, điều này sẽ hoạt động hoàn hảo. –

+0

Bạn cũng có thể. đặt mục nội dung trang hiện tại vào đó, vì vậy bạn sẽ không cần phải tạo bất kỳ thứ gì. Trang web hiện tại có thể truy cập thông qua 'IOrchardServices.WorkContext.CurrentSite'. –

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