2010-08-24 9 views
8

Tôi luôn tránh xa tư cách thành viên asp.net vì nó có vẻ cồng kềnh, và (vào thời điểm đó) không thể thực hiện được. Trong trường hợp của asp.net MVC cụ thể, không ai sử dụng một giải pháp thay thế để gán vai trò cho người dùng và lưu trữ một số thông tin bổ sung cho người dùng đã đăng nhập? Bất kỳ đề nghị? Thật điên rồ khi chỉ cuộn của riêng bạn, chỉ cần triển khai chức năng bạn cần?Lựa chọn thay thế thành viên ASP.NET

+0

Nếu bạn cần một giải pháp thay thế thì có thể bạn có một số lý do ... bạn có thể chia sẻ chúng với chúng tôi không? Có gì thiếu trong thành viên asp.net mà bạn muốn sử dụng? –

+3

Tôi không chắc nó “cồng kềnh” như thế nào. Nếu có bất cứ điều gì, nó hơi nghiêng về phía vai trò. – Greg

+0

Bạn có thể thêm các cột vào các bảng được tạo bởi aspnet_regsql, và nó hoạt động tốt. Sau đó bạn có thể tham khảo các bảng trong một cái gì đó giống như một mô hình thực thể nếu bạn muốn. Bằng cách đó, bạn vẫn có thể sử dụng nhà cung cấp thành viên của ASP.NET trong phạm vi nó hoạt động cho bạn, nhưng bạn có thể hưởng lợi từ các thông tin bổ sung mà bạn đang lưu trữ. – Andrew

Trả lời

3

Thành viên ASP.NET sử dụng mô hình nhà cung cấp để lưu trữ. SqlMembershipProvider kế thừa chức năng mã hóa/băm mật khẩu từ lớp MembershipProvider trừu tượng. Nhưng bạn cũng có thể kế thừa từ MembershipProvider và nhận được chức năng đó trong một nhà cung cấp tùy chỉnh nếu bạn muốn.

Nếu bạn sử dụng SqlMembershipProvider, bạn sẽ có được một cơ sở dữ liệu đầy đủ làm việc với quản lý mật khẩu đầy đủ (kiểm tra, thay đổi, đặt lại, cố gắng mật khẩu không hợp lệ) và quản lý người dùng (CRUD ops, khóa người dùng).

Tất cả điều đó ở cấp API. Bạn có thể tạo bất kỳ giao diện người dùng nào bạn muốn đối với API.

Sử dụng SqlMembershipProvider không yêu cầu bạn sử dụng Nhà cung cấp Vai trò hoặc Nhà cung cấp Tiểu sử hoặc bất kỳ công cụ nào khác và bạn có thể tự cuộn cho những thứ đó mà không ảnh hưởng đến tư cách thành viên. Ít nhất tôi cũng khuyên bạn nên sử dụng SqlMembershipProvider được kiểm tra kỹ càng làm cốt lõi cho bảo mật của bạn cho những thứ cơ bản.

+0

Tôi đoán vấn đề là khi bạn cần mở rộng nó. Hoặc, lược đồ hiện tại của bạn không khớp với db SqlMembershipProvider. – Roco72

+0

mở rộng SqlMembershipProvider có thể có vấn đề. Cá nhân tôi sử dụng SqlMembershipProvider trong một ứng dụng chủ yếu chạy trên Oracle. Những cái bàn đó chỉ đang ngồi trong cơ sở dữ liệu nhỏ của riêng họ chứ không phải lo lắng về cơ sở dữ liệu kinh doanh chính và nó có vẻ hoạt động tốt cho tôi. – Greg

0

Tôi đã triển khai thành công DotNetOpenAuth làm nhà cung cấp tư cách thành viên và vai trò. Nó không phải là một thực hiện đầy đủ nhưng xử lý các tình huống phổ biến nhất.

Chúng cung cấp các mẫu VS để giúp bạn bắt đầu.