che ho letto alcune domande su questo argomento, come ad esempio here, here, here e here; ma nessuno ha fornito una soluzione operativa nel mio caso.Utilizzo di Windows con i gruppi Active Directory come ruoli
quello che voglio fare:
implementare l'autenticazione di Windows per una web app che viene utilizzato solo dai nostri dipendenti. In questo modo non dovrebbero aver bisogno di accedere all'app, ma già essere autenticati tramite l'accesso a Windows.
Inoltre, ho bisogno di limitare alcune aree dell'app, in base ai gruppi di sicurezza di Active Directory a cui l'utente può essere assegnato.
Quindi io voglio essere in grado di decorare Controller/Azioni con
[Authorize(Roles="SomeRole")]
Quello che ho provato:
ho
<authentication mode="Windows" />
nel mio web.config. E ho aggiunto diverse permutazioni di uno <roleManager>
come trovato in alcuni dei post collegati sopra. Attualmente ho questo ruolo manager
<roleManager defaultProvider="WindowsProvider"
enabled="true"
cacheRolesInCookie="false">
<providers>
<add
name="WindowsProvider"
type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
come trovato nel this post.
Così com'è, se decorare un controller con [Authorize]
, posso accedervi bene.
Tuttavia:
posso vedere le mie impostazioni utente sulla rete, che sono parte di un gruppo di protezione AD chiamato "IT". Ma se decorassi lo stesso controller con [Authorize(Roles="IT")]
ottengo la schermata vuota che è servita dal server di sviluppo asp.net per un 401 non autorizzato. Questo è inaspettato. Penso che dovrei essere in grado di visualizzare la pagina poiché sono connesso a Windows e faccio parte del gruppo "IT".
Quasi tutto ciò che trovo su questo argomento mi sembra molto semplice per realizzare ciò che sto cercando di fare, ma mi manca chiaramente qualcosa qui.
Hai configurato il provider di appartenenze ASP.NET anche per utilizzare Active Directory? Non solo il fornitore di ruoli .... –
@marc_s Ho ASpNetActiveDirectoryMembershipProvider impostato come predefinito in web.config. Posso postare che se senti che potrebbe esserci un errore causando il problema. –
Questo è un thread vecchio, ma con sicurezza AD, è necessario specificare il dominio? [Authorize (Roles = @ "domainname \ SomeRole")] – steveareeno