Devo usare l'autenticazione basata sui ruoli?

0

Ho 3 tipi di utenti che potrebbero accedere al mio sito Web: Amministratore, Istruttore, Studente.

Ho già tabelle per studenti e istruttori e ognuna ha le sue proprietà uniche.

Ora voglio creare la pagina di accesso. Molte esercitazioni utilizzano l'autenticazione basata sui ruoli in casi simili, ma nel mio caso, ho già creato classi diverse per ognuna di esse. Inoltre, non ci sarà una pagina di registro, dal momento che gli istruttori vengono aggiunti dagli amministratori e dagli studenti dagli istruttori. Non riesco a controllare il tipo di utente una volta effettuato l'accesso? e poi lo reindirizzamento sulla base di questo?

    
posta Comp23555 11.02.2017 - 15:08
fonte

2 risposte

1

Fai la cosa più semplice che potrebbe funzionare. Se l'utente stesso impone anche il ruolo che ha, quindi non spendere ulteriori sforzi per separarli. Può sempre farlo dopo.

Potresti aggiungere una tabella 'account' e creare chiavi esterne, dovresti avere una tabella per controllare nome utente e password e in seguito puoi effettuare una query per l'utente specifico. Sarebbe utile memorizzare il tipo di utente nella tabella degli account in modo da sapere quale relazione estranea alla query.

    
risposta data 11.02.2017 - 15:19
fonte
0

Le persone sono solo persone.

Un istruttore può frequentare un corso e, quindi, essere uno studente. Un amministratore può anche istruire. Uno studente può prendere diverse classi e quindi avere diversi istruttori. Quindi, è meglio non confondere le nozioni dell'identità di una persona con il ruolo (i) che giocano e per adattarsi ai ruoli che giocano sono contestuali.

Molti sistemi devono supportare l'idea che un utente abbia diversi ruoli. Se non lo supporti, quando un Istruttore è un Amministratore o uno Studente, avranno troppi permessi per un dato contesto o semplicemente non funzioneranno correttamente, e dovranno usare un login diverso (cioè creare più identità, eventualmente coinvolgendo la gestione di più indirizzi e-mail) quando vogliono utilizzare il sistema da un ruolo diverso che svolgono.

Riguardo all'implementazione interna (dal tuo commento a @Joppe), l'uso dell'ereditarietà (ad esempio, lo studente eredita dall'account) impedisce che una persona giochi più ruoli. Questo dovrebbe usare invece la composizione. Parlando filosoficamente, non diremmo che "A Student is-a (n) Account".

Potresti considerare una pagina di identità, che dà all'utente l'accesso ai vari ruoli e amp; contesti che hanno. Quindi consentire loro di scegliere un ruolo (o contesto) e procedere con le autorizzazioni e il controllo di accesso associati a quel ruolo per il resto della loro sessione. Dovrebbero essere in grado di cambiare i ruoli tornando alla loro pagina di identità.

    
risposta data 11.02.2017 - 18:32
fonte

Leggi altre domande sui tag