2012-12-28 27 views
5

Tôi bắt đầu tìm hiểu về MVC4. Như các bước đầu tiên, tôi cần thực hiện đăng nhập từ một cơ sở dữ liệu tùy chỉnh chỉ với ba vai trò trong cơ sở dữ liệu.Tuỳ chỉnh MembershipProvider trong MVC 4

Có thực sự cần thiết để triển khai nhà cung cấp tư cách thành viên tùy chỉnh không? Tôi đang đặt câu hỏi này vì tôi đang đọc bài đăng này và anh ấy đang thực hiện theo cách khác: http://patrickdesjardins.com/blog/asp-net-membership-with-mvc4

Tôi chỉ cần đưa người dùng từ cơ sở dữ liệu tùy chỉnh và xác định vai trò.

Để xác định quy tắc, khá đơn giản. Tôi có hai bảng gọi là Học sinh và Giáo viên. Mỗi người có Id của nó là Id đăng nhập và mật khẩu thuộc tính chung.

if (db.Students.Where(x => x.StudentId == x && x.Password == y) return "student" 
if (db.Teachers.Where(x => x.TeacherId == x && x.Password == y) return "teacher" 

// does not exist 

Bạn có thể định hướng tôi về cách triển khai tính năng này trong ASP.NET không?

+0

Nhà cung cấp vai trò tùy chỉnh? –

+0

Bạn có thể mở rộng trong 'MembershipProvider' và' RoleProvider' để làm việc với cơ sở dữ liệu tùy chỉnh của bạn. – HTX9

Trả lời

13

LƯU Ý: Dưới đây có thể không áp dụng cho NET Core hoặc ASP.NET Lõi

Trước khi bắt đầu nghiên cứu của bạn, lưu ý rằng các thành viên và vai trò quản lý đã được thay đổi trong ASP.NET MVC4 . (nếu bạn đang sử dụng mẫu 'Ứng dụng Internet' từ Visual Studio)

Vui lòng đọc Jon Galloway blog post về những gì đã thay đổi.

New Simple Membership Provider được thiết kế để mở rộng và khắc phục các vấn đề trong các thành viên cũ và hệ thống quản lý vai trò (mà vẫn được hỗ trợ vì nó là một phần của ASP.NET)

Cả hai triển khai hỗ trợ quản lý vai trò, và bạn' được tự do lựa chọn hoặc triển khai hoặc cuộn của riêng bạn. Có những lập luận trên đó là tốt hơn, và một số nhà phát triển thích thực hiện riêng của họ, vì những hạn chế của cả hai. (Tôi sẽ không đi vào chi tiết, vì nó có thể bị thiên vị)

Đây là hướng dẫn để giúp bạn bắt đầu. [Link] .. Xin lưu ý rằng hướng dẫn giải thích hệ thống thành viên cũ chứ không phải phương thức SimpleMembership/WebSecurity mới.

CẬP NHẬT

Chỉ khi bạn nghĩ rằng bạn có đủ khuôn khổ thẩm định, Microsoft đã công bố OWIN - Open Web Interface for .NET.

OWIN là một bộ giao diện cho .NET được mở và có thể cắm và điều này bao gồm xác thực. Vui lòng tham khảo bài đăng này [Link] về cách sử dụng Xác thực mẫu MVC 5 OWIN. (Hy vọng rằng họ sẽ ngừng tạo khung xác thực mới với điều này.)