Autenticazione Forms

domenica 08 maggio 2005 - 22.44

Anonimo Profilo | Senior Member

Salve a tutti.
Ho un problema che no riesco a risolvere con l'autenticazione basata su forms!

Ho letto tante guide in 2 gg che ci sto sopra, ho provato a farlo in tanti modi, ma il problema che mi da è sempre lo stesso:
una volta che clicco sul pulsante di login, il metodo RediredtFromLoginPage non riesce a reinderizzare sulla pagina in origine richiesta(default.aspx) quindi provo con un response.redirect a forzare il reinderizzamento ma mi da come errore thread annullato.

Il mio obiettivo è quello di riuscire a loggarmi (convalidando utente e pass inseriti), ma anche avere il reinderizzamento sulla Default.aspx altrimenti non serve a nulla; ci sto sbattendo la testa da due gioni e a questo punto non so più che fare. dipenderà da qualche impostazione che ho qui nel mio sistema?

Alla fine ho scaricato i tre file che stanno sul vostro sito riguardo all'autent. basata su forms (Default.aspx,login.aspx e Web.config) ma niente da fare non va!

Ah... ho allegato il progettino "provasemplice".

Grazie per l'attenzione


totti240282 Profilo | Guru

metti il codice di errore.

Anonimo Profilo | Senior Member

Il messaggio di errore che mi restituisce Exception.Message è questo:
Thread annullato
e si verifica quando tenta di elaborare questa istruzione:
Response.Redirect("Default.aspx");

Subito prima ci sta il RedirectFromLoginPage che però non mi porta i automatico sulla pagina di Default consententomi quindi l'accesso.

Io da Browser cerco di accedere in :
http://localhost/applicazione/default/default.aspx

Si, la pagina default.aspx è sotto autenticazione se date un'occhiata al web.config allegato vi rendete conto un po di più.

Quando Faccio FormsAuthentication.RedirectFromLoginPage(txtUser.Text, false) non accade nulla al posto di aprire la defautl.aspx mi ridà la login, è proprio questo il problema.
Potreste provare l'applicazioncina che ho allegato per vedere come si comporta da voi?

E' assurdo nonostante le abbia provate tutte :(
Grazie ancora resto in attesa...

totti240282 Profilo | Guru

scusa tu hai messo qua

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


se entri con rocco è normale che non ti fa il redirect ,dato che rocco è un deny users,e quindi non può entrare,quando ho tempo poi vedo tutto il codice.

Anonimo Profilo | Senior Member

Allora... tutte le indicazioni che ho dato nel mess. precedente facevano riferimento a un'altra versione del web.config siccome sto facendo diverse prove la versione che hai esaminato tu era una delle prime.

cmq anche se levi rocco e lasci

<authorization>
<deny users="?" />
</authorization>
per es. se voglio proteggere una singola cartella tramite una sezione location, in questo caso significherebbe nega agli anonimi

o ancora cosi:
<authorization>
<deny users="?" />
<allow user="?" />
se vogliamo una protezione generica su tutta l'applicazione dove specifichiamo che può entrare solo chi si logga.

Ebbene in entrambi i casi non mi fa entrare e intendo che non mi porta sulla default.aspx come io devo.

Se riuscite a trovare una configurazione che porta dopo la login sulla default.aspx fatemelo presente. qui da me le ho provate tutte e non funziona.

Sembra una maledizione...
Grazie ancora...

Anonimo Profilo | Senior Member

scusate ho sbagliato per il secondo es. mi ricorreggo per il secondo caso:

<authorization>
<deny users="?" />
<allow user="*" />
</authorization>

Entra solo chi si logga e nega agli anonimi...

Anonimo Profilo | Senior Member

A me non lo fa in automatico è questo il punto non mi porta sulla default.aspx a voi si?

totti240282 Profilo | Guru

a me si funziona tutto bene.

Anonimo Profilo | Senior Member

ok so contento che a voi funziona. Ma come mai qui da me non va...!?

Ci sarà qualcosa che cambia sicuramente...

Mi riallegate il tutto ? Cosi provo interamente per come è girato da voi.

Allegatemi l'applicazioncina che avete provato per me grazie...

Anonimo Profilo | Senior Member

Totti, coach mi allegate il progettino che a voi è andato bene?Grazie

totti240282 Profilo | Guru

questo è un mio progetto

<authentication mode="Forms">
<forms name="nomecookie" loginUrl="loginutente.aspx" />
</authentication>


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

If autenticazione(txtnomeutente.Text, txtpassword.Value) = True Then
FormsAuthentication.RedirectFromLoginPage(txtnomeutente.Text, False)
end if

autenticazione è uan funzione che controlla che nel db le credenziali siano corrette.

Anonimo Profilo | Senior Member

A me qui non funge non mi fa il redirect.
ho riallegato il l'applicazione.

A sto punto che devo fa?
Ma dipenderà forse dal machine.config?

Anonimo Profilo | Senior Member

Qualcuno disposto ad analizzare a fondo il mio problema?

Anonimo Profilo | Senior Member

c'è nessuno che mi può dare una mano?

totti240282 Profilo | Guru

be mi dispiace ma la soluzione che io uso è quella e mi funziona.

Anonimo Profilo | Senior Member

Se mi dicessi come hai configurato il tutto forse ce la facciamo!
Per lo meno ce la facciamo a capire cosa non va da me.
Mi puoi allegare la tua applicazione dove hai fatto la prova?
me la zippi cosi vedo le differenze tra quella mia e quella tua.
ci conto...

homer Profilo | Newbie

Curioso ho lo stesso identico problema:
punto con un link ad una pagina che richiede autenticazione, vengo ridirezionato alla pagina di login e nella barra degli indirizzi vedo correttamente:
http://localhost/nomesito/login.aspx?ReturnUrl=%2fnomesito%
2fadministrator%2fdefault.aspx

dove administrator/default.aspx è la pagina a cui devo andare
faccio l'autenticazione con successo ma al momento del redirect:
FormsAuthentication.RedirectFromLoginPage(user, chkRemember.Checked)
rimango nella pagina del login (barra indirizzo non cabìmbia) senza messaggi di errore, mentre se tento di accedere con utente sbagliato allora compare il messaggio previsto dal mio codice di utente non autorizzato.

es:
If AuthenticateUser(userEncoded, pwdEncoded, ruoli) Then
FormsAuthentication.RedirectFromLoginPage("@" & ruoli, chkRemember.Checked)

Else
lblLogin.Text = "Accesso negato: utente non autorizzato!"
End If

Non scatta il page_load sulla pagina administrator/default.aspx cui dovrei essere ridirezionato

Nessuna idea!?!?
Alessandro

AndreaBelmonte Profilo | Newbie

Ciao,
non so se posso essere di aiuto, ma ho appena risolto un problema simile, sia pur utilizzando l'autenticazione su session file.
Nonostante il login mi procedesse correttamente, la RedirectFromLoginPage mi ritornava un errore di "thread annullato".
Guardando il codice, inserito in un blocco try catch, ho notato che la chiusura e distruzione di alcuni oggetti (DataReader e MySqlCommand nel mio caso) erano successivi alla redirect... spostandoli al giusto posto, ossia sopra, la redirect veniva correttamente eseguita anche se mi ritornava comunque un eccezione prima della redirect (thread annullato).
Per fare una prova scema, ho eliminato il blocco try catch ed ho eseguito tutte le istruzioni di controllo e redirect a cascata, vecchia maniera: tutto funziona correttamente... ed appena ne avrò il tempo cercherò di capire meglio il motivo di questo comportamento anomalo...

Ciao,
Andrea
Andrea Belmonte
www.andreabelmonte.com
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