Condivisione della logica di autorizzazione tra i progetti ASP.NET MVC 4 e WebAPI 2

0

Piuttosto simile a questa domanda qui l'applicazione corrente su cui stiamo lavorando ha progetti MVC 4 e WebApi 2 separati, in cui il progetto MVC sta elaborando la richiesta dell'utente su WebApi che esegue effettivamente la logica di business e poi di nuovo il MVC è responsabile della visualizzazione del risultato all'utente. Una cosa che non riusciamo ancora a capire è come autorizzare correttamente un utente su entrambi: WebApi e MVC . Il problema è che, quando ad esempio, la sessione è scaduta, non vogliamo che la richiesta di alcune risorse venga elaborata nuovamente in WebApi , che poi verificherà se l'utente è effettivamente autorizzato a vedere questi dati, cosa voglio capire come condividere una logica comune per l'autorizzazione quando, ad esempio, l'utente, se la sua sessione è scaduta, viene restituito alla pagina di accesso, ma se il suo stato è corretto per essere elaborato sul WebApi, dove di nuovo l'utente potrebbe essere controllato se ha i diritti per accedere ad alcuni dati.

Cercherò di rendere la domanda più autoesplicativa: Ho una soluzione con due progetti - project1 - ASP.NET MVC 4 e project2 WebApi 2 project. Il progetto MVC ha più funzioni di rappresentazione ed è uno strato tra l'utente e il luogo in cui viene implementata la logica aziendale effettiva ( WebApi ). Ad esempio, se vado su Products page, richiamo un'azione da MVC ma qui è la parte difficile: l'utente potrebbe non essere in grado di inserire la pagina Products a tutti (la sessione è scaduta per esempio) in questo caso non voglio procedere con la chiamata al metodo WebApi 2 che alla fine si occuperà di controllare se l'utente è autorizzato o meno a vedere questi dati, ma in questo caso voglio l'azione MVC per reindirizzare l'utente a una pagina LogIn o qualcosa del genere. E l'altro caso - l'utente ha effettuato l'accesso con successo, la sua sessione non è scaduta quindi viene chiamato il servizio responsabile per il recupero dei prodotti, ma a questo punto voglio verificare quale tipo di prodotti l'utente ha i diritti di vedere. Quindi in entrambi i casi ho bisogno di una sorta di autorizzazione, ma la prima volta dovrebbe essere eseguita nel progetto MVC e la seconda volta nel progetto WebApi 2 . E non sono sicuro che sia possibile, ma sto cercando un modo per implementare questa logica di autorizzazione in un posto e consumarlo dove ne ho bisogno invece di implementare qualcosa esplicitamente per il progetto Mvc e poi qualcosa di più lo stesso per WebApi 2 project

    
posta Leron 28.04.2015 - 16:56
fonte

0 risposte

Leggi altre domande sui tag