Asp.net Membership & amp; Autenticazione
-
06-07-2019 - |
Domanda
Sto iniziando a progettare l'infrastruttura dell'applicazione web sviluppata con ASP.NET MVC preview 2 come esperienza di apprendimento. Ho il mio modello di dominio e schema di database che desidero utilizzare per l'autenticazione.
Voglio eseguire una variante dell'autenticazione basata sui ruoli. Tuttavia, non riesco a avvolgere la testa su come farlo.
Ho un utente che ha accesso a un " Blog " ;. Come posso eseguire l'autorizzazione laddove l'utente ricopre il ruolo previsto, ma quando l'utente appartiene al suddetto "Blog"
Sarebbe necessario un fornitore di ruolo personalizzato o posso eseguire la logica in un attributo di autorizzazione per le azioni del controller; interrogando BlogId dell'utente autenticato ed eseguendo lì la logica di autorizzazione. Non sono a conoscenza di alcun modo integrato per farlo attualmente, ma se esiste, correggimi.
Se possibile, un esempio di un fornitore di ruolo personalizzato o un attributo di autorizzazione che fornirebbe questa funzionalità sarebbe fantastico.
Grazie
Soluzione
Sembra che ciò che desideri sia la possibilità di avere sia un ruolo che un controllo della proprietà. Ad esempio, un utente può avere il ruolo di " autore " ma dovrebbe anche avere una relazione di proprietà con un determinato blog per poter effettivamente creare o aggiornare le voci del blog. L'utilizzo di un provider di ruoli standard insieme a un attributo di autorizzazione personalizzato che sappia come verificare la proprietà - in sostanza una particolare relazione di chiave esterna tra l'entità per l'azione e la voce dell'utente corrente nel DB - sembra essere un modo ragionevole per avvicinarsi questo.
Puoi trovare un codice di esempio su la mia risposta a questo domanda simile .