2009-08-02 27 views
11

Tôi tự hỏi làm cách nào để mở rộng công cụ thành viên trong asp.net?Làm cách nào để mở rộng tư cách thành viên trong Asp.net?

Khi người dùng đăng nhập, tôi muốn kiểm tra Tên người dùng và Mật khẩu. Tất nhiên các thành viên asp.net tiêu chuẩn thực hiện điều này (đây là ValidateUser()).

Tôi cũng muốn kiểm tra một trường khác có tên là "tổ chức". Nếu người dùng nhập nội dung nào đó vào hộp này, tôi muốn xác minh xem "tổ chức", "tên người dùng" và "mật khẩu" có khớp với nội dung trong cơ sở dữ liệu hay không.

Nếu người dùng để trống "tổ chức" thì tôi chỉ muốn sử dụng phương thức ValidateUser() mặc định được cung cấp trong asp.net và chỉ kiểm tra "userName" và "password".

Vì vậy, tôi có thể quá tải phương thức ValdiateUser()? Hay tôi sẽ phải viết một cái của riêng mình để xử lý vụ kiện mới này?

Tôi sẽ lưu trữ trường "tổ chức" này trong cơ sở dữ liệu ở đâu? Tôi đã nghe điều gì đó về những người đề xuất bảng "Hồ sơ" nhưng tôi không chắc chắn.

Cũng như thế nào tôi có thể thay đổi tư cách thành viên đối xử với chúng như 3 người dùng khác nhau

Tổ chức giáo dục: ABC UserName: A09410515 Mật khẩu: 1234567

Tổ chức giáo dục: GHA UserName: A09410515 Mật khẩu: 1234567

Tên người dùng: A09410515 Mật khẩu: 1234567

Vì vậy, như của tôi cơ sở dữ liệu nên được quan tâm này nên được 3 người dùng duy nhất. Tất nhiên trong trường hợp cơ sở dữ liệu của tôi đã có cùng một thông tin được lưu trữ trong đó.

Ví dụ:

Tổ chức giáo dục: ABC UserName: A09410515 Mật khẩu: 1234567

và ai đó cố gắng để đăng ký với thông tin chính xác tương tự cho "UserName" và "Tổ chức giáo dục", sau đó nó sẽ nhổ lại một lỗi về việc tên trùng lặp.

Trả lời

15

Có, bạn có thể create a custom membership provider. Nhà cung cấp của bạn sẽ triển khai MembershipProvider cho bạn toàn quyền kiểm soát việc tạo giao diện giữa hệ thống thành viên và giản đồ cơ sở dữ liệu mở rộng. Writing A Custom Membership Provider for your ASP.NET 2.0 Web Site là ví dụ chi tiết.

+0

Hi Cảm ơn các liên kết. Tôi vẫn còn hơi bối rối. Tôi sẽ lưu trữ các trường bổ sung này ở đâu để thêm vào. Giống như tôi thêm nó vào hồ sơ hoặc những gì? Giống như tôi đang tạo một nhà cung cấp tùy chỉnh để tôi có thể hợp nhất db asp.net của tôi và db của tôi với nhau nhưng tôi đang sử dụng máy chủ mssql. Ngoài ra tôi nhận thấy họ ghi đè lên các phương thức đó. Tôi vẫn muốn sử dụng phương pháp xác minh mặc định. Vì vậy, tôi làm 2 phương pháp quá tải. Một với xác minh tùy chỉnh của tôi và một phương pháp gọi phương thức xác minh mặc định? – chobo2

2

Cách lười biếng để thực hiện việc này là kết hợp tổ chức và tên người dùng với nhau để tạo tên người dùng thực.

Vì vậy, bạn có 3 tên người dùng riêng biệt: ABC & A09410515, GHA & A09410515 và & A09410515. Chỉ cần không cho phép người dùng sử dụng & trong tên người dùng.

Sau đó, trước khi tạo người dùng hoặc đăng nhập, bạn chỉ cần kết hợp hai chuỗi lại với nhau.

Tôi không thể nghĩ ra bất kỳ vấn đề quan trọng mà không thể được cố định với một hack đơn giản (ví dụ như hiển thị tên người dùng (sử dụng username.split ('&') [1]), nhưng bài JP chắc chắn là "đúng" cách để làm điều đó.

James

1

Bạn có thể sử dụng ứng dụng từ tên chính thức tổ chức, cách mà bạn sẽ có tên cùng một người dùng trong các ứng dụng khác nhau

Rodrigo.

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