Forms Authentication

mercoledì 11 febbraio 2004 - 15.25

pynthu Profilo | Junior Member

Ciao a tutti
E' già un po' che mi sbatto per risolvere questo problema:
Nel mio sito uso la Forms Authentication. Questo fa sì che quando un utente tenta di accedere direttamente a pagine interne al sito senza passare per la home, venga rediretto alla pagina di log.
Il problema è che il sito è compost da tre frames, mentre quando si verifica la situazione prec., la pagina di log viene aperta a tutta finestra nel browser, mentre vorrei che l'utente venisse rediretto alla home.
Spero di essere stato chiaro.

Grazie

Ciao

pynthu Profilo | Junior Member

Innanzitutto grazie per la risposta tempestiva.
Ho gia' provato, ma mi si innesca un deadlock nel frame di sinistra, dove carico una pagina aspx

pynthu Profilo | Junior Member

Sono davvero stupefatto della tempestività del tuo intervento!!!
Partecipo anche ad altri forum e non ho ancora avuto risposte utili!!!

webconfig:

<authentication mode="Forms">
<forms name="mioCookie" loginUrl="Login.aspx">
</forms>
</authentication>

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

la pagina con frames è HomePage.htm, contenente 3 frames: testata, spalla (frame di sx) e main. Quando viene chiamata la home page, carica in testata e nel frame main pagine html mentre nel frame di sx la pagina Menu.aspx, contenente dei link ad altre pagine del sito.
Quando l'utente entra e non è autenticato (nessun cookie), al posto del menu' è caricata la pagina login.aspx (Forms auth!).
Se l'utent. ha successo, dal form di log l'utente è rediretto alla pagina che aveva chiesto (menù.aspx).
Ora il problema è che se un utente cerca di entrare direttamente via browser alle pagine interne del sito (es: anagrafiche.aspx) vorrei venisse rediretto alla homepage.
Come posso fare?
Pensavo a inserire JavaScript nell'evento onload della pagina di log:
if top.frames.length == 0 allora ....

Che ne dite?

Grazie

Ciao

pynthu Profilo | Junior Member

Eccellente!!!!!!!!!!!!!!!!!
E' proprio così: l'autenticazione based forms è per tutto il sito.
Quindi, vediamo se io ho capito:
Realizzo una pagina aspx di log non in un frame, e se l'utente è autenticato lo redirigo alla HOMEPAGE?!?!?!?

Provo e vi faccio sapere!!

Ancora grasssssie!

Ciao

pynthu Profilo | Junior Member

Scusa, non vorrei essere troppo indiscreto!
Vorrei che funzionasse come il vostro sito: vedo che la pagina di log compare in un frame a sx, non a piena pagina!
Ma pagina di log è anch'essa a frames come la pagina di default, con gli stessi link!

Grazie

Ciao

Brainkiller Profilo | Guru

Su questo sito, ti sembra che sia un Frame ma non lo è.
Una pagina con i frame è una pagina che contiene al suo interno dei Tag appunto <Frame e poi per ogni frame vengono caricate varie pagine. In questo caso invece la pagina è unica.

Per creare una Login che non sia in fondo devi creare uno User Control, (con estensione .ascx), che poi puoi caricare nella tua pagina tramite l'istruzione Page.LoadControl()

Naturalmente la pagina dev'essere strutturata. In questo caso ci sono varie tabelle (<Table>) con più celle, che contengono appunto login box e menu nella parte destra, parte centrale in mezzo e parte destra.

ciao
david

pynthu Profilo | Junior Member

Grazie infinite
Ho provato con controlli ascx e funziona!!!
A questo punto, una volta loggato, l'utente entra nella HomePage del sito, che è a frames.
Poichè il Frame superiore contiene nuovamente il titolo ho pensato di reciclare il controllo ascx che uso nella pagina di log, ma non mi fa caricare nel frame file aspx.
Vorrei evitare di fare ad es. una pagina htm o aspx identica al file ascx, ma differente nell'estensione!
Non c'è modo di utilizzare un controllo utente direttamente in un frame!
Ho sentito parlare di IFrame ma nella documentazione di cui dispongo non c'è traccia!!!

Grazie

Ciao

Brainkiller Profilo | Guru

Nel frame di solito tu puoi caricare una qualsiasi pagina internet, html o aspx.
Nella pagina .aspx puoi caricare eventuali controlli .ascx
L'IFRAME è un tag apposito che ti permette di creare all'interno di una pagina Internet qualsiasi un buco, dentro questo buco puoi caricare un'altra pagina Internet. Viene poco usato inoltre è bloccato su molti browser per question di security.

ciao
david

pynthu Profilo | Junior Member

Grazie mille
Ho trovato sul www un po' di documentazione e mi sono informato!!!
Non esistono alti modi per caricare all'interno di una pagina altre pagine oltre IFrame e frameset?!?!

Grazie

Ciao

Brainkiller Profilo | Guru

Direi di no :)
ciao
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5