Tôi đã làm việc trên một ứng dụng ASP.NET MVC 4 sử dụng xác thực dựa trên mẫu. Người dùng được xác nhận chống lại nhà cung cấp thành viên dựa trên lựa chọn nhà cung cấp trên biểu mẫu đăng nhập. Ví dụ: tại thời điểm này có hai nhà cung cấp: thư mục hoạt động và nhà cung cấp tùy chỉnh gọi một dịch vụ web bên ngoài. Nếu người dùng hợp lệ thì chúng tôi cập nhật thông tin trong bảng người dùng cục bộ của chúng tôi, như ngày đăng nhập cuối cùng, v.v ... Nếu người dùng hợp lệ và không tồn tại trong bảng người dùng cục bộ, chúng tôi sẽ thêm họ. Khi tất cả điều này được thực hiện, chúng tôi đặt cookie và chuyển sang nội dung chính. Tất cả các bộ điều khiển kiểm tra User.Identity.IsAuthenticated và quay lại trang đăng nhập nếu thử nghiệm thất bại.
Bây giờ tôi được thông báo rằng ứng dụng này đang đi từ một ứng dụng web duy nhất sang một giải pháp đa ứng dụng. Mỗi ứng dụng nên tồn tại độc lập với các ứng dụng khác, chia sẻ giao diện giống nhau và sử dụng cùng chức năng đăng nhập. Mỗi ứng dụng có thể yêu cầu một nhà cung cấp thành viên mới được thêm vào. Chúng tôi cũng sẽ thêm dữ liệu để giới hạn quyền truy cập vào các ứng dụng. Một người dùng chỉ có thể có quyền truy cập vào một trong các ứng dụng trong khi người dùng khác có quyền truy cập vào tất cả các ứng dụng đó.
Thiết lập lưu trữ dữ liệu không phải là một vấn đề. Chia sẻ bố cục từ một ứng dụng sẽ được sử dụng trong các ứng dụng khác cũng không phải là vấn đề. Điều tôi gặp khó khăn là quyết định làm thế nào để tinh chỉnh lại chức năng đăng nhập, như vậy, việc thêm một nhà cung cấp thành viên mới và ứng dụng trên đường xuống sẽ không yêu cầu chúng tôi xuất bản lại các ứng dụng hiện có. Ngay bây giờ họ cũng sẽ không muốn một trang khởi động đăng nhập cho các ứng dụng. Họ muốn người dùng truy cập thẳng vào một ứng dụng, đăng nhập và làm những gì họ đến đó để làm. Vì vậy, tôi có thể đi đến http://site1.mysites.com , đăng nhập và làm việc của tôi trong khi anh chàng bên cạnh tôi đi vào http://site2.mysites.com , nhật ký và thực hiện công việc của mình.
Tôi đang gặp khó khăn trong việc quấn đầu xung quanh cách tốt nhất để làm điều này. Suy nghĩ đầu tiên của tôi là một dịch vụ web WCF để đăng nhập. Tôi sẽ có một hành động điều khiển gọi dịch vụ web thông qua thông tin đăng nhập. Nếu đăng nhập thành công, sau đó tôi có thể nhận được một danh sách các ứng dụng cho người dùng từ bộ nhớ cục bộ. Thêm nhiều ứng dụng sẽ không yêu cầu chúng tôi xuất bản lại các ứng dụng hiện có do không có thay đổi trong dịch vụ web cho các ứng dụng đó.
Tôi cũng tiếp tục nghe về công cụ API Web ASP.NET này. Tôi có nên đi tuyến đường đó thay thế? Tôi có thể muốn xây dựng một trang web xung quanh việc quản lý cơ sở dữ liệu người dùng cục bộ để có một trang web lưu trữ api web có thể là một tùy chọn.
Là công cụ API Web cho tình huống này? Nếu không, nó có giữ lợi thế so với dịch vụ web WCF không? Có phương pháp khác để đạt được kết quả cuối cùng của tôi?