具有多個數據庫或提供程序的 MVC4 簡單成員身份驗證 (MVC4 Simple Membership authentication with multiple databases or providers)


問題描述

具有多個數據庫或提供程序的 MVC4 簡單成員身份驗證 (MVC4 Simple Membership authentication with multiple databases or providers)

I'm working on an MVC4 site using SimpleMembership to handle user accounts and role based authentication. We have another site and we'd like to implement a single sign on system allowing users from the existing site to log in to the one I am building. What would be the best way to achieve this and hopefully leverage to the existing roles based authorization I'm using on the MVC4 site. Is it possible to have multiple membership providers (i.e. use the built in one and if the user is not found, attempt to authenticate via a custom provider that I'll write (once I work out how!). Or would it be better to abandon the built in membership/roles and roll my own?

I also thought of letting WebSecurity check the local database and if the user is not found, query the 2nd database and if the users credentials are valid, create a local account for them. One issue with this approach is if a user called Fred registers on the MVC site, and then a user from the other site called Fred logs in, we couldn't create them a local account with the same username. We could prefix/suffix the username with some text to indicate that they are from the other site but then we lose the single sign on feature.

We will also want to integrate AD authentication for staff in the future.

So essentially I'm looking for the best way to authenticate users from multiple databases and keep using roles based authentication?

I've also done a little digging was wondering if ADFS might be useful for this. 

Any help or advice would be greatly appreciated!


參考解法

方法 1:

I recommend the use of an Identity server to handle all your login request and switching to a claim based authentication instead of a role based authentication if you can.

I personally went with Thinktecture IdentityServer 

pluralsight.com have a good course on it. 

Thinktecture IdentityServer is build on top of simple Membership and it supports multiple protocol such as 

  1. WS‑Federation
  2. WS‑Trust
  3. OpenID Connect
  4. OAuth2
  5. ADFS Integration
  6. Simple HTTP

I recommend checking it 

Good Luck

(by Stephen MarshallNerdroid)

參考文件

  1. MVC4 Simple Membership authentication with multiple databases or providers (CC BY‑SA 3.0/4.0)

#asp.net-membership #asp.net-mvc-4 #asp.net-mvc #simplemembership






相關問題

更改會員等級時區 (change membership class time zone)

將 AspNetSqlMembershipProvider 用戶遷移到 WebMatrix (Migrate AspNetSqlMembershipProvider users to WebMatrix)

Beberapa aplikasi dengan keanggotaan dan nama aplikasi yang sama (Multiple applications with membership and same applicationName)

簡單的會員管理帳戶 (Simple Membership Admin Accout)

如何設置 RIA 服務以使用現有的 ASP.Net 成員基礎 (How to setup RIA Services to use an existing ASP.Net membership base)

具有多個數據庫或提供程序的 MVC4 簡單成員身份驗證 (MVC4 Simple Membership authentication with multiple databases or providers)

班級設計決策 (Class design decision)

從 Web.Config 獲取 MembershipProvider 的屬性 (Get MembershipProvider's Properties from Web.Config)

會員 API WP7 (Membership API WP7)

模擬會員 (Mocking Membership)

如何使用 LINQ 和 ASP.NET MVC 持久化用戶與其關聯的數據庫? (How do I persist which database a user is associated with it using LINQ and ASP.NET MVC?)

關於在 Web 應用程序中使用 ASP.NET 安全性和成員資格 (About using ASP.NET security and Membership in web applications)







留言討論