10 messaggi dal 19 febbraio 2009
Ciao a tutti,
ho uno spinoso problema con l'autenticazione form.
L'uso del mio progetto deve essere consentito solo ad alcuni utenti della intranet, ho pertanto creato una form di login ed il web.config è impostato in questo modo:

<authentication mode="Forms">
  <forms loginUrl="login.aspx" protection="All"/>
</authentication>
<authorization>
  <deny users="?"/>
</authorization>


Quando eseguo in debug o in run col Development server di Visual Studio va tutto bene: vengo rediretto alla form di login.
Quando invece eseguo sul webserver sembra che il mio web.config venga ignorato ed avendo impostato l'autenticazione "Integrated Windows" sulle proprietà permette l'accesso a chiunque.

Ho provato a giocare con le impostazioni, ma il mio web.config viene sempre ignorato, come se ci fosse qualcosa di livello inferiore che abilita l'accesso a tutti.

NB: anche con autenticazione "windows" invece di form il web.config viene ignorato, tanto che se scrivo
<deny users="*"/>
comunque tutti accedono.

Qualcuno mi sa aiutare?

Grazie.
652 messaggi dal 21 gennaio 2007
Contributi
domanda banale.. hai disabilitato l'accesso anonimo su iis ?

poi, se configuri l'autenticazione in mode="windows" e ti fai stampare su una pagina qualsiasi User.Identity.Name, vedi il nome del tuo utente di windows o cos'altro ?
10 messaggi dal 19 febbraio 2009
Sì, l'ho disabilitato.

Se uso autenticazione Windows non ottengo quello che voglio, cioè abilitare solo alcuni utenti (a meno di usare una pagina intermedia che controlla User.Identity.Name e lascia passare solo gli utenti che voglio io).

Usando l'autenticazione form invece User.Identity.Name è sempre null, in quanto entro direttamente nella Default.aspx e non vengo rediretto nella login.aspx
652 messaggi dal 21 gennaio 2007
Contributi
nel tuo caso, l'autenticazione deve essere in mode="windows", con iis configurato in autenticazione integrata e accesso anonimo disabilitato.

poi, per abilitare solo alcuni utenti, basta specificarli all'interno del web.config in questo modo:

<allow users="Utente1,Utente2,Utente3" />
10 messaggi dal 19 febbraio 2009
Grazie,
ma la cosa strana che succede è che anche se io vado a scrivere:
<deny users="*" />

- in debug o in run sul webserver locale, giustamente non fa entrare nessuno
- in run sul webserver reale fa entrare chiunque e comunque

Il problema sta proprio qui... Boh...
652 messaggi dal 21 gennaio 2007
Contributi
in effetti sembra proprio strano..
non è per caso che hai più web.config all'interno della tua applicazione ?
oppure, fammi vedere l'ordine con cui inserisci all'interno dell'elemento "authorization" gli elementi "allow" e "deny"
10 messaggi dal 19 febbraio 2009
Io scrivo solo:
<deny users="*"/>
e cmq lascia entrare.
La cartella dove risiede il mio Web.Config non ha niente a livello inferiore, ma due livelli sopra ha un Web.Config che ha indicato:
<allow users="*"/>
.
Su iis infatti indica che eredito l'allow all, ma, se non mi sbaglio, il mio Web.Config dovrebbe fungere da overload e quindi togliere gli accessi.
652 messaggi dal 21 gennaio 2007
Contributi
però se in una cartella tu hai

<allow users="*" />

in quella cartella fa entrare tutti. anche se al livello sotto hai

<deny users="*" />

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.