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

È stato utile?

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 .

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