2011-01-03 36 views
15

Tôi muốn sử dụng xác thực trên trang web của mình để đăng nhập vào phần Quản trị. Tôi đã có lược đồ cơ sở dữ liệu của mình, tôi không muốn sử dụng các bảng thành viên ASP.NET cho SQL Server. Tôi có ba bảng: Employees, Roles và EmployeesInRoles.Xác thực biểu mẫu tùy chỉnh trong MVC

Tôi thực sự muốn giữ điều này càng đơn giản càng tốt, nhưng tôi đang gặp khó khăn khi tìm giải pháp. Tôi chỉ muốn sử dụng xác thực biểu mẫu với bảng của mình để nhân viên có thể đăng nhập, đăng xuất, thay đổi mật khẩu, v.v.

Nếu ai đó có thể dẫn tôi đến bài đăng hoặc hướng dẫn về blog này.

+0

Không chắc thế nào đảm bảo dữ liệu của bạn cần phải được , hoặc yếu tố nguy cơ, nhưng giả sử rằng nó có giá trị bảo vệ hoặc bạn sẽ không làm phiền ... Hãy chắc chắn bạn làm theo các hướng dẫn OWASP. Hầu hết các nhà phát triển không nên lăn an ninh của riêng họ khi một API hiện có được phát triển và thử nghiệm bởi các chuyên gia là có sẵn, nhưng nếu bạn nhấn mạnh, ít nhất là làm theo các hướng dẫn. http://www.owasp.org/index.php/Authentication_Cheat_Sheet – David

+7

@David: Tôi phải không đồng ý - nguồn của việc triển khai tích hợp sẵn có cho nguồn gốc. Bạn có thể sử dụng các bảng tích hợp sẵn khi bạn đã có bảng Người dùng được tích hợp vào mô hình dữ liệu của bạn. Microsoft dựa trên các nhà cung cấp thành viên trên giao diện đặc biệt để nó có thể được mở rộng. –

+0

Tôi sẽ sửa đổi lưu trữ mật khẩu bình luận trước đây của tôi không phải là một điều đơn giản và có thể dễ dàng được thực hiện sai. Vì vậy, hãy kéo dài, nhưng hãy đảm bảo bạn hiểu cách mã hóa dữ liệu nhạy cảm khi nghỉ ngơi trong cơ sở dữ liệu. –

Trả lời

24

Steven, hãy kiểm tra hàng loạt của tôi hướng dẫn về an ninh website: http://www.asp.net/web-forms/overview/older-versions-security/introduction/security-basics-and-asp-net-support-cs

(EDIT: Tôi đã cập nhật URL ở trên như URL ban đầu đã được trả lại một 404. Nhưng xin lưu ý rằng tài liệu này đã được viết vào năm 2008 và vô vọng ngày nay.)

Ba hướng dẫn đầu tiên tập trung hoàn toàn vào xác thực dựa trên biểu mẫu mà không thảo luận về tư cách thành viên. Ba hướng dẫn đầu tiên này - đặc biệt là các hướng dẫn # 2 và # 3 - sẽ giúp bạn di chuyển đúng hướng.

Để triển khai vai trò mà không cần sử dụng khung công tác ASP.NET có sẵn, hãy xem bài viết này: Role-Based Authorization With Forms Authentication.

Tất cả những gì được nói, tôi khuyên bạn nên xem xét lại bằng cách sử dụng ASP.NET được nướng trong thư viện Membership và Roles. Tránh chúng có nghĩa là bạn sẽ phải tái tạo lại bánh xe, và có thể bạn sẽ làm sai. (Ví dụ: bạn có đang lưu trữ mật khẩu người dùng một cách an toàn trong triển khai tùy chỉnh của mình không?)

Lập trình hạnh phúc!

+0

+1 - cuộn của riêng bạn thường là một ý tưởng tồi, và tôi hoàn toàn đồng ý với bạn về điều này! – David

+1

Điều đó hoạt động, cho đến khi bạn phải làm việc với kho dữ liệu không phải SQL Server. –

+0

@EdDeGagne, bạn có thể tạo nhà cung cấp tư cách thành viên tùy chỉnh để đối phó với một cửa hàng dữ liệu thay thế. Trong thực tế, ai đó có thể đã làm như vậy. Ví dụ, đây là một nhà cung cấp thành viên tùy chỉnh cho MySQL - http: //www.codeproject.com/Articles/12301/Membership-and-Role-providers-for-MySQL –

4

Nhà cung cấp tư cách thành viên được xây dựng dựa trên các giao diện có thể được thực hiện thay thế bằng của riêng bạn, mà trong số những thứ khác có thể sử dụng bảng của riêng bạn để xác thực.

Dưới đây là một đoạn video về việc tạo ra một nhà cung cấp ASP.NET Membership tùy chỉnh: http://www.asp.net/general/videos/how-do-i-create-a-custom-membership-provider

Dưới đây là một bài báo nói chung tốt với con trỏ đến các nguồn lực khác:
http://weblogs.asp.net/scottgu/archive/2006/02/24/ASP.NET-2.0-Membership_2C00_-Roles_2C00_-Forms-Authentication_2C00_-and-Security-Resources-.aspx

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