Sto lavorando per aggiungere l'autorizzazione a un'applicazione ASP.NET MVC ed eseguire un blocco stradale. Sono finalmente riuscito a ottenere il nostro provider di appartenenza personalizzato cablato e ottenere l'autenticazione di lavoro per l'app. Ora, come previsto, se aggiungo l'attributo [Autorizza] ai miei controller, l'utente deve essere autenticato per visualizzare la pagina. Ho anche testato con successo [Authorize (Users = "{userName}")] che funziona anche per limitare la pagina a quell'utente specifico.HttpContext.Current.User.IsInRole (roleName) restituisce sempre false
Il problema è che [Authorize (Roles = "{RoleName}")] non sembra funzionare come mi aspetto. Se aggiungo quell'attributo a un controller, ogni volta che provo ad accedere alla pagina corrispondente, vengo reindirizzato alla nostra pagina di accesso. Questo è quello che mi aspetterei che succedesse se l'utente non ha il ruolo richiesto, ma sta accadendo anche se l'utente ha quel ruolo. Ho controllato sia User.IsInRole ("{roleName}") che HttpContext.Current.User.IsInRole ("{roleName}") in un metodo View, a Controller e a Helper e restituisce sempre 'False'.
Ho verificato che gli utenti con cui lavoro hanno i ruoli a cui sto tentando di autorizzare. Ho anche testato questi utenti in un'app WebForms che limita l'accesso alla pagina con gli stessi ruoli e funziona perfettamente. Immagino di avere qualcosa di sbagliato da qualche parte o mi manca qualcosa di semplice, ma dopo aver cercato tutta la mattina, non ho trovato nulla che mi abbia avvicinato alla soluzione, quindi spero che qualcuno qui possa darmi una mano.
Ehi, potresti modificare la tua risposta per dirci quali sono state le configurazioni - potrebbe aiutare gli altri in futuro. – sirrocco
sirrocco: le impostazioni di configurazione erano specifiche per l'implementazione e l'ambiente, quindi non sarebbero state di alcuna utilità per nessun altro. – Hamman359
Il tuo commento mi ha spinto a ricontrollare il mio web.config e ho scoperto che il nodo roleManager aveva abilitato = "false". Volevo solo che la gente sapesse che se disabilitata restituisce false per IsInRole anziché restituire un'eccezione di qualche tipo come ci si potrebbe aspettare. –