Ruoli e permessi a pagine specifiche

martedì 11 marzo 2008 - 19.50

getfar Profilo | Junior Member

Ciao raga,avrei bisogno di un aiutino.
Volevo attribuire in asp.net dei permessi di accesso(per ciascun ruolo) ad alcune specifiche pagine .
Tipo l'admin puo' vedere tutte le pagine, l'user solo pa home ...

Come posso fare?

grazie di tutto.

rossimarko Profilo | Guru

Ciao,

le security di accesso alle varie pagine le puoi gestire all'interno del web.config.
Io di solito creo delle cartelle che raggruppano le pagine in base ai ruoli (Admin,User ecc).
Poi all'interno della cartella inserisco un file web.config che mi specifica quali ruoli possono accedere alle pagine di quella cartella.
Ad esempio:
<?xml version="1.0"?> <configuration> <system.web> <authorization> <allow roles="Amministratore,Utente"/> <deny users="*"/> </authorization> </system.web> </configuration>

Se invece ti servono dei permessi specifici su una singola pagina puoi impostarli, sempre nel web.config, specificando la location:
<configuration> <location path="Pagina1.aspx"> <system.web> <authorization> <allow roles="Amministratore,Utente"/> </authorization> </system.web> </location> <location path="Pagina2.aspx"> <system.web> <authorization> <allow roles="Amministratore"/> </authorization> </system.web> </location> </configuration>

Io di solito cerco sempre di raggruppare per cartella perchè così evito di modificare il web.config ogni volta che inserisco una pagina nuova.

Qui trovi la documentazione sul tag authorization: http://msdn2.microsoft.com/en-us/library/8d82143t.aspx

PS: le due soluzioni possono essere adottate anche insieme. Ad esempio potresti avere una pagina (DatiUtente.aspx) all'interno della cartella Amministrazione che deve essere vista anche dal ruolo "Utente". In questo caso il web.config della cartella Amministrazione sarà il seguente:

<configuration> <system.web> <authorization> <allow roles="Amministratore"/> <deny users="*"/> </authorization> </system.web> <location path="DatiUtente.aspx"> <system.web> <authorization> <allow roles="Utente"/> </authorization> </system.web> </location> </configuration>

Marco

getfar Profilo | Junior Member

Grazie di tutto.
Un'ultima cosa ... come faccio a fare la verifica che l'utente sia autorizzato (in vb)?

rossimarko Profilo | Guru

Se l'utente non può accedere verrà mandato automaticamente alla maschera di login. Non devi scrivere neanche una riga di codice perchè ci pensa il motore di asp.net
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5