Sto costruendo una nuova applicazione ASP.NET MVC (in C#) e uno dei requisiti è creare un nuovo database di membri. Per questo, avremmo bisogno di ruoli per gestire i diversi tipi di membri e profili per gestire i metadati aggiuntivi associati a ciascun membro. Fin qui tutto bene, basta usare gli standard MembershipProvider, RoleProvider e ProfileProvider forniti come parte di .NET Framework.Come consentire più metodi di autenticazione in ASP.NET?
Tuttavia, il problema è che mi piacerebbe consentire diversi metodi di autenticazione. Vorrei che gli account e le credenziali di accesso avessero una relazione uno-a-molti (un account può avere un numero di credenziali di accesso allegato). Ad esempio, un utente potrebbe avere un account OpenID e ActiveDirectory collegato al proprio account.
Tuttavia, dopo aver sperimentato alcuni modi, abbiamo optato per il percorso MembershipProvider (spiegato come è stato ottenuto come risposta sotto).
La mia domanda è: come hanno fatto le persone prima e come la gente potrebbe suggerire di avvicinarmi? Sembra che si tratti di qualcosa che è stato raggiunto su un certo numero di siti, ma una ricerca qui non restituisce nulla di solido con cui giocare.
EDIT: Dopo aver guardato intorno per un buon periodo di ore durante la notte e questa mattina - non sono ancora convinto che la macellazione di un singolo MembershipProvider sarebbe stata l'opzione più semplice. Avere più MembershipProviders dà lo stesso effetto?
BOUNTY EDIT: Con nessuna risposta, presumo che non ci sia più la soluzione ottimale che quella che ho postato come risposta. È davvero così? Sto offrendo una ricompensa per cercare di vedere se qualcuno ha ulteriori pensieri su questo e se ci sono alternative migliori.
BOUNTY ACCEPT EDIT: Penso che WIF sia la risposta accettata di seguito, per una versione .NET 4 e forse altre versioni in quanto probabilmente funziona con 3.5. Oltre a questo, forse un MembershipProvider macellato o adattato potrebbe essere ancora rilevante.
Wow, stavo proprio cominciando a digitare la mia risposta con WIF come hai postato questo. Sto usando una combinazione di SQL e Active Directory per autenticare i miei utenti usando diversi metodi. WIF è bello, perché una volta che il tuo STS (pagina di accesso) è impostato, emette "token" agli utenti sotto forma di cookie. I token identificano gli utenti e specificano stringhe di informazioni (attestazioni) sugli utenti. STS disaccoppia l'autenticazione dalla logica dell'applicazione. Le attestazioni dell'utente possono essere lette in modo programmatico oppure è possibile utilizzare una speciale classe ClaimsAuthorizationManager per gestire l'accesso. –
WIF sembra senz'altro risolvere il problema da quello che posso dire, ma non è in grado di definire i prezzi. Non vi era alcuna menzione evidente del costo (http: // msdn.microsoft.com/en-us/security/aa570351.aspx), ma non riescono a essere disponibile per il download per me da valutare. Se non è gratuito (o disponibile con il server AD non più recente, potrei avere alcuni problemi, tuttavia è ancora un'ottima risposta, quindi +1 – Amadiere
@Amadiere WIF verrà rilasciato insieme al framework .net quando 4.0 è uscito nell'aprile di quest'anno ed è ovviamente gratuito, è già disponibile per il download e lo uso quotidianamente e non ho riscontrato alcun problema. –