Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Autorizzazione alle cartelle
giovedì 29 novembre 2012 - 13.26
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
.NET 4.0
|
Windows Server 2008 R2
|
Visual Studio 2010
Gemini
Profilo
| Expert
856
messaggi | Data Invio:
gio 29 nov 2012 - 13:26
Ciao a tutti
Ho definito i permessi alle cartelle nel web.config
<authorization>
<allow roles="admin" />
<allow roles="superadmin" />
<allow roles="azienda" />
<deny roles="cliente" />
</authorization>
Nella pagina di login ho inserito un LoginView, ora quando provo ad accedere alla cartella admin con le credenziali di un cliente invece di visualizzare il form di login e dire che l'accesso è stato negato, sembra che visualizzi il contenuto di LoggedInTemplate dato che non ha le credenziali per accedere alla pagina di default dell'area riservata.
Non ho mai utilizzato <authorization> per controlllare l'accesso alle cartelle(ho fatto sempre tutto da codice), è un comportamento normale quello che ricevo?
grazie mille
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
gio 29 nov 2012 - 14:26
Ciao
Prova ad aggiungere:
<deny users="?" />
<deny users="*" />
Ti passo quello che uso io
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authorization>
<allow roles="Admin" />
<deny roles="Superadmin" />
<deny users="?" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
Ciao
alexmed
Gluck74
Profilo
| Guru
1.359
messaggi | Data Invio:
gio 29 nov 2012 - 14:41
>Ciao a tutti
>Ho definito i permessi alle cartelle nel web.config
quali cartelle? tutte alla stessa maniera? tutte con la stessa configurazione?
>
>Nella pagina di login ho inserito un LoginView, ora quando provo
>ad accedere alla cartella admin con le credenziali di un cliente
>invece di visualizzare il form di login e dire che l'accesso
>è stato negato, sembra che visualizzi il contenuto di LoggedInTemplate
>dato che non ha le credenziali per accedere alla pagina di default
>dell'area riservata.
Credo che sia corretto.
L'utente è loggato (role=cliente) quindi mi pare giusto che faccia vedere il LoggedInTemplate.
Ma non puoi accedere al contenuto della pagina, e anche questo mi pare giusto perché l'hai negato nel web config.
Però i dettagli sono pochi.
spiega più ampiamente, grazie.
ciao
____________
http://glucolo.wordpress.com
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
Gemini
Profilo
| Expert
856
messaggi | Data Invio:
gio 29 nov 2012 - 15:27
grazie a tutti per la risposta
Quello che voglio fare è definire i ruoli che posso accedere alla cartella 'admin' e se un utente non autorizzato prova ad accedere alla cartella far visualizzare o il form di login o un messaggio di errore.
Tutto questo lo faccio già da codice, ma mi chiedevo se fosse possibile farlo in maniera automatica.
Ho provato a inserire nel web.config(che si trova nella cartella 'admin'):
<deny users="?" />
<deny users="*" />
quando visualizzo la pagina non prende il css e non visualizza le immagini.
ancora grazie
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
gio 29 nov 2012 - 16:09
>quando visualizzo la pagina non prende il css e non visualizza
>le immagini.
>ancora grazie
Dov'è il CSS? e le immagini?
Prova a mettere davanti al percorso "~/"
alexmed
Gemini
Profilo
| Expert
856
messaggi | Data Invio:
gio 29 nov 2012 - 16:14
la cartella immagini si trova in 'admin' e logicamente non è possibile accedere per un utente non autorizzato
ho sbagliato io :-)
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
gio 29 nov 2012 - 16:26
Ok, il resto funziona?
alexmed
Gemini
Profilo
| Expert
856
messaggi | Data Invio:
gio 29 nov 2012 - 16:34
Ora sì
tutto ok
totti240282
Profilo
| Guru
1.574
messaggi | Data Invio:
ven 30 nov 2012 - 09:01
Come hai risolto ?
C'è solo un capitano !!!!!!
Gemini
Profilo
| Expert
856
messaggi | Data Invio:
ven 30 nov 2012 - 09:36
Ciao Capitano
ho inserito un web.config nella cartella 'admin'
<configuration>
<system.web>
<authorization>
<allow roles="admin" />
<allow roles="superadmin" />
<allow roles="azienda" />
<deny users="*" />
<deny users="?" />
</authorization>
</system.web>
<location path="Immagini">
<system.web>
<authorization>
<allow users="?" />
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Style">
<system.web>
<authorization>
<allow users="?" />
<allow users="*" />
</authorization>
</system.web>
</location>
</configuration>
e poi inserito nella sezione 'LoggedInTemplate' un messaggio per informare che non si hanno le credenziali e un tasto per tornare al login(prima delle redirect eseguo FormsAuthentication.SignOut())
Una domanda: la classe Profile viene inizializzata quando eseguo il login? Ho provato a richiamare Profile.UserName ma mi dava null.
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
ven 30 nov 2012 - 12:39
>Una domanda: la classe Profile viene inizializzata quando eseguo il login? Ho provato a richiamare Profile.UserName ma mi dava null.
Per sapere il nome dell'utente autenticato basta: User.Identity.Name.
La classe Profile devi attivarla dal file Web.config
Per tutto il resto c'è la classe Membership
Ad esempio se vuoi conoscere l'ID di un utente: Membership.GetUser(User.Identity.Name).ProviderUserKey()
Ciao
alexmed
Gemini
Profilo
| Expert
856
messaggi | Data Invio:
ven 30 nov 2012 - 12:48
Grazie Alex
uso già User.Identity.Name, in alcuni articoli ho visto la classe Profile ed ero curioso di capire quando veniva inizializzata.
Grazie per la risposta
Torna su
Stanze Forum
Elenco Threads
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 !