15 messaggi dal 20 giugno 2004
Illustro brevemente il problema:

Ho due applicazioni distinte: Base e Modulo entrambe con il proprio web.config.
L'applicazione Base si trova nella directory server

Localhost/Base

Modulo si trova in

localhost/Base/Modulo

Poichè Modulo sarà una delle tante applicazioni che estenderà le funzionalità di Base voglio che venga generata separatamente (anche da terze parti).
Tuttavia vorrei che condividesse l'autenticazione di Base.
Ho tentato in questo modo:


Ho creato un progetto in VS con nome Base.
Ho creato una sottocartella Modulo1 che ho trasformato in applicazione tramite le utility di IIS e vi ho inserito il web config che trà l'altro contiene le seguenti righe:

<authentication mode="Forms" >
<forms name="mycookie" loginUrl="../login.aspx" path="../" protection="All" timeout="30"/>
</authentication>

<authorization>
<deny users="?" />
</authorization>

Il web.config di Base è quasi identico (le pagine di Base sono pagine Pubbliche):

<authentication mode="Forms" >
<forms name="mycookie" loginUrl="login.aspx" path="/" protection="All" timeout="30"/>
</authentication>

<authorization>
<allow users="*" />
</authorization>

Il risultato che ottengo è questo:

Quando richiamo la pagina "prova.aspx" di Modulo1 il server verifica che è protetta da autenticazione e richiama correttamente la pagina "login.aspx" di Base con l'aggiunta della stringa di query "?ReturnUrl=%2fBase%2fModulo1%2fprova.aspx"

prova. aspx si trova in localhost/Base/Modulo1
login.aspx si trova in localhost/Base

In login.aspx è presente un bottone alla cui pressione è associata la seguente subroutine:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim tkt As New FormsAuthenticationTicket(1, "hiro", Now, Now.AddMinutes(2), True, "hello")
Dim strCookie As String = FormsAuthentication.Encrypt(tkt)
Dim AuthCookie As New HttpCookie(FormsAuthentication.FormsCookieName, strCookie)
AuthCookie.Path = FormsAuthentication.FormsCookiePath
AuthCookie.Expires = tkt.Expiration
Response.Cookies.Add(AuthCookie)

Response.Redirect(Request.QueryString("ReturnURL"))
End Sub

alla pressione del bottone il server mi ripropone la pagina di login, segno che evidentemente, tentando di ricaricare prova.aspx il cookie non viene considerato e viene riproposta la pagina di login proposta dal web.config.

Dov'è l'errore?
Modificato da hiro2035 il 09 agosto 2004 13.09 -
è quel "../" nella prima definizione che non ha senso, devi specificare un percorso completo (che nel tuo caso deve essere /, la root).

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
15 messaggi dal 20 giugno 2004
tu dici:

<authentication mode="Forms">
<forms name="mycookie" loginUrl="../login.aspx" path="/" protection="All" timeout="30"/>
</authentication>

nel web.config della sottocartella-applicazione?

Non funziona. Ho ancora lo stesso problema
32 messaggi dal 20 dicembre 2001
www.dinuzzo.it
Hai provato a valutare la possibilita' di usare lo stesso web.config nella root dell'applicazione in cui pero' inserire all'interno del tag
<location path="sottodirectory"></location>
la sottocartella da proteggere?

Ciao
Riccardo
15 messaggi dal 20 giugno 2004
Si, infatti per ora sto procedendo cosi, ma solo come situazione temporanea finchè non riesco a venirne fuori.
Il mio intento infatti è quello di fare in modo di poter implementare i modoli in maniera autonoma, anche da terze parti per esempio. La soluzione di una unica applicazione con un unico web.config risulterebbe scomoda.

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.