Sto cercando di creare un'applicazione che utilizza <autorizzazione> regole per limitare i gruppi che sono autorizzati ad accedere all'applicazione. Sto usando l'autenticazione di Windows e il provider di ruolo di Windows per ASP.NET (AspNetWindowsTokenRoleProvider). Sto usando gruppi locali per definire i ruoli, come il dominio su cui sto sviluppando, e il dominio in cui l'app verrà distribuita sarà diverso.ASP.NET di Windows provider di ruoli (AspNetWindowsTokenRoleProvider) non accorgersi di un utente che si aggiunge a un nuovo gruppo
Quando ho impostato inizialmente la mia applicazione su un server IIS7 e ho configurato il sito per l'utilizzo dell'autenticazione di base, con il dominio predefinito appropriato, tutto funzionava correttamente per gli utenti che erano già assegnati ai gruppi autorizzati. Tuttavia, quando ho tentato di aggiungere un nuovo utente a uno dei gruppi autorizzati, questo utente non è mai stato autorizzato ad accedere all'applicazione. Ho fatto tutto salvo per il riavvio della macchina. Ho riavviato IIS così come cancellato tutti i file temporanei e i cookie sul lato client, senza alcun risultato.
Si deve affermare che si tratta di un'app ASP.Net MVC, anche se non pensavo che avrebbe fatto davvero alcuna differenza. Qui ci sono le voci pertinenti dal mio web.config:
<!-- use windows authentication -->
<authentication mode="Windows" />
<!-- use the Windows role provider -->
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" />
<!-- global authorization rules -->
<authorization>
<allow roles="admins,contractors"/>
<deny users="*" />
</authorization>
Per esempio, diciamo che abbiamo un utente, "Dominio \ joe", che non è attualmente un membro dei "amministratori" locale gruppo, ma noi voglio aggiungerlo. Andiamo ad aggiungerlo, e poi quando Joe tenta di accedere, vede un errore che non è autenticato (dopo diversi tentativi di accesso falliti). Nessuna quantità di IIS riavvia o Joe ha cancellato i suoi cookie e altri file temporanei risolveranno questo problema.
ASP.Net mantiene una sorta di cache di ruolo/gruppo segreta? Come procedi con l'aggiunta di un nuovo utente a un gruppo e assicurandoti che il fornitore di ruoli vedrà che l'utente è stato aggiunto a un gruppo?
Si consiglia di inviare questo commento come una risposta e lo accetto quindi è chiaro per gli altri che si è risolto. –