Domanda

Attualmente sto convertendo a molto vecchio, ma funzionante sito ASP classico su ASP.Net.

Ha un sistema di gestione degli utenti scritto completamente personalizzato.Anche se funziona bene, ha davvero bisogno di un aggiornamento perché voglio che sia più flessibile per alcuni progetti futuri in cantiere.

Quando ho chiesto informazioni a qualcuno, mi hanno detto "Devi utilizzare il provider Microsoft" e hanno tenuto una conferenza su come Microsoft rilascia tutte queste cose gratuitamente e quanto sono buone e dovrebbero essere riutilizzate il più possibile.

Ho fatto un bel po' di ricerche al riguardo (principalmente guardando i video su http://asp.net/learn ) e sono rimasto molto colpito da alcune delle funzionalità in quanto sembra che ci siano componenti di trascinamento della selezione per elementi che mi porterebbero anni a scrivere.

Tuttavia, l'attuale database dei membri è complicato da spiegare, è un database scritto completamente su misura che ha molte relazioni interne...Non è realmente "compatibile" con il provider Microsoft predefinito.

Ho dato un'occhiata Come posso:Creare un fornitore di abbonamento personalizzato?, ma mi sento un po' fuori dalla mia zona di comfort e ho paura che sarà lento, introdurrà una falla nella sicurezza o semplicemente non funzionerà.

Alla fine, il Microsoft Membership Provider dovrebbe funzionare per me: le uniche personalizzazioni di cui ho veramente bisogno sono l'accesso per utilizzare il campo nome utente/password nel mio database e lo script di creazione utente che ha molto codice personalizzato per diversi terzi sistemi partitici (necessità di fornire servizi, ecc.).

Mi stavo solo chiedendo, cosa faresti se ti trovassi di fronte ad una situazione simile?

  1. Utilizza il Microsoft Membership Provider e in qualche modo fallo funzionare per te (anche se vorrei suggerimenti)

  2. Utilizza il provider di appartenenze Microsoft ma utilizza un provider personalizzato personalizzato in base al tuo codice.

  3. Utilizzi la tua soluzione completamente personalizzata?

È stato utile?

Soluzione

Quel video complica le cose :) Se hai intenzione di implementare un provider personalizzato, allora il riflettore su quello esistente è un buon punto di partenza :)

Come opzione rapida e sporca potresti, ovviamente, hackerare le procedure memorizzate utilizzate dal provider di appartenenza SQL, ma il codice personalizzato per fornire i servizi probabilmente lo sta estendendo.

Se ci pensi, la fornitura remota di servizi non appartiene realmente a un fornitore di abbonamento, non è realmente una funzione di abbonamento: tutto ciò che l'abbonamento fa è fornire nomi utente e password e l'autenticazione attorno ad essi.La mia sensazione è che dovresti spostare la fornitura dei servizi fuori da lì ed eseguirla sul sito ASP.NET dopo che un utente è stato creato, anche se si tratta semplicemente di chiamare una procedura memorizzata una volta che il provider di appartenenze ha fatto il suo dovere.Se lo fai, potresti scoprire che il provider di appartenenze SQL farà tutto ciò di cui hai bisogno (probabilmente anche con i provider di ruoli e profili) e quindi avrai molto meno codice da scrivere!

Altri suggerimenti

Mi sono trovato in situazioni simili in passato.In entrambi i casi abbiamo creato implementazioni personalizzate dei fornitori (MembershipProvider, RoleProvider, ProfileProvider) attorno al meccanismo esistente.

In entrambi i casi abbiamo utilizzato solo le implementazioni del provider per l'accesso in sola lettura, ad es.per darci i gubbin di validazione facili in web.config e simili.Il codice di amministrazione utente è stato lasciato intatto poiché funzionava perfettamente.

Se il provider esistente funziona (ha i campi giusti per i tuoi dati), usalo per iniziare.Puoi sostituirlo MOLTO facilmente con un fornitore del cliente in un secondo momento (solo una singola modifica del valore di configurazione).

Attenzione, non esiste un'interfaccia di gestione ASP.NET "pronta all'uso" per questo, dovrai crearne una tua o utilizzarne una di terze parti.

Utilizza il mio MembershipProvider specializzato per lavorare sulle tabelle del mio database.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top