PDA

View Full Version : [ASP .NET] Problemi autenticazione/sessione


Diablo-IT
18-02-2009, 18:32
Ciao a tutti.
Ho bisogno del vostro aiuto per risolvere un problema all'interno di un applicativo web scritto in ASP .NET+VB .NET.

L'errore/bug che non riesco a risolvere e' il seguente:

1) L'utente si logga nella pagina di login inserendo nome utente+password, e fino qua tutto bene.

2) Nelle seguenti pagine protette l'utente deve compilare dei campi, principalmente delle textbox, ed in seguito tramite la pressione (evento onclick) di un comando "button" l'applicazione effettua operazioni matematiche su questi valori inseriti dall'utente per mostrtarli nuovamente a schermo.

3) Tutto pare funzionare, tranne il fatto che moltissimi utenti finali lamentano il problema di trovarsi sbattuti fuori dalla sessione spesso a volentieri. In pratica quando clikkano il comando "button" all'interno della pagina, si ritrovano nuovamente alla pagina index.aspx.
L'unico codice che rimanda alla pagina index.aspx e' quello del comando "logout", oppure quello nell'evento "page load" in caso l'utente non sia autenticato.

Dove cavolo sta l'errore? Non riesco a venirne a capo, vi sarei molto grato se riusciste ad aiutarmi.
Grazie in anticipo.

Ecco il codice incriminato:

WEB CONFIG:

<authentication mode="Forms"/>

<sessionState
timeout="200"
mode="InProc"
cookieless="true" />


PAGINA DI LOGIN (index.aspx):

Protected Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogin.Click
Try
If "Nome Utente+Password corretti" Then
Session.Add("User", txtUserID.Text)
Response.Redirect("paginaXY.aspx")
Else
" Username o Password errate, visualizzo errore in questa pagina tramite un textbox"
End If
Catch ex As Exception
' Errore
End Try
End Sub


PAGINE PROTETTE:


Protected Sub btnLogOut_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogOut.Click
Session.Abandon()
Response.Redirect("index.aspx")
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Session.Item("user") = "" Then
Response.Redirect("index.aspx")
Else
[CUT]
End If

End Sub

Protected Sub btnBack_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBack.Click
Response.Redirect("nomepaginaprecedente.aspx")
End Sub

Kralizek
18-02-2009, 18:46
perchè non cerchi di usare gli strumenti che la piattaforma mette a disposizione?

Tutto quel codice mi sa di porting da Classic ASP ;)

Diablo-IT
18-02-2009, 19:20
perchè non cerchi di usare gli strumenti che la piattaforma mette a disposizione?

Tutto quel codice mi sa di porting da Classic ASP ;)

Potresti perfavore essere piu' preciso?
E' da poco che lavoro anche con ASP .net (mai usato il "vecchio" asp), e probabilmente, anzi sicuramente, sto sbagliando qualcosa!

P.S.
E' una web application scritta da zero, nessun porting.

Kralizek
19-02-2009, 13:04
ora sto a lavoro, appena torno a casa cerco dei link da passarti ;)

Diablo-IT
24-02-2009, 15:28
Ragazzi ci sto impazzendo!

Mi sono letto un po di msdn e tutorial vari in rete ma senza ottenere risultati...

L'applicazione web e' finita, ma se non risolvo questo problema di autenticazione e timeout, come dire, son cavoli amari!