[ VerbatimBOT @ 11.10.2006. 09:23 ] @
Napravio sam korisničku kontrolu koja predstavlja navigacioni meni i koja stoji na svakoj strani.
Problem je sledeći: Ta kontrola ispod menija ima panel za logovanje, ako nije ulogovan panel je vidljiv, u suprotnom nije.
U tom panelu event za dugme je sledeći
Code:

        Dim result As Integer = obj.validateUser(txtUsername.Text, txtPassword.Text)
        If (result = 1) Then
            ' valid
            Session("username") = txtUsername.Text
            Session("accountID") = obj.getAccountID(txtUsername.Text)
            If (Request("returnUrl") <> Nothing) Then
                Response.Redirect(Request("returnUrl"))
            Else
                Response.Redirect(Request.Url.AbsoluteUri)
            End If
        Else
            If (result = 0) Then
                ' not valid
                lblInfo.Text = "Log In podaci nisu ispravni."
                Return
            Else
                ' itd.

E sad, kad se ulogujem prvi put, username i accountID se bez problema smeste u Sesiju i učita mi se strana. Međutim, ako klikom na link sa menija ponovo pokušam da pristupim toj istoj strani, prijavi mi da nisam ulogovan.. Nakon što se ponovo ulogujem, sve radi bez problema.

Jel ima neko neku ideju šta bi ovo moglo da bude?
[ dusans @ 11.10.2006. 17:14 ] @
Kako proveravaš da li si ulogovan daj taj kod...
[ VerbatimBOT @ 18.10.2006. 09:02 ] @
Metoda validateUser
Code:
Public Function validateUser(ByVal username As String, ByVal password As String)
        ' 0-not valid, 1-valid, 2-not active, 3-error
' crypt je objekat klase za enkripciju
        password = crypt.EncryptText(password)
        Dim status As Integer
        cmd.Parameters.Clear()
        cmd.Connection = cnn
        cmd.CommandText = "SELECT COUNT(*) FROM userAccounts WHERE (username = @username AND password = @password)"
        cmd.Parameters.Add(New SqlParameter("@username", username))
        cmd.Parameters.Add(New SqlParameter("@password", password))
        Dim rowsAffected As Integer = 0
        Dim accountActive As Boolean = False
        Try
            If (cnn.State = ConnectionState.Closed) Then
                cnn.Open()
            End If
            rowsAffected = Convert.ToInt32(Convert.ToString(cmd.ExecuteScalar()))
            If (rowsAffected = 1) Then
                status = 1
                cmd.CommandText = "SELECT active FROM userAccounts WHERE (username = @username AND password = @password)"
                Dim act As Integer = Integer.Parse(Convert.ToString(cmd.ExecuteScalar()))
                If (act < 2) Then
                    accountActive = False
                Else
                    accountActive = True
                End If
                If (accountActive = True) Then
                    status = 1
                Else
                    status = 2
                End If
            Else
                status = 0
            End If
        Catch ex As Exception
            status = 3
        Finally
            cnn.Close()
        End Try
        Return status
    End Function
[ VerbatimBOT @ 18.10.2006. 09:05 ] @
Ukoliko metoda validateUser vrati 1, korisničko ime i njegov ID se smeštaju u Sesiju.
A provera da li je korisnik već ulogovan
Code:
 If (Session("accountID") = Nothing) Then
            Response.Redirect("../info.aspx?msgID=" & crypt.EncryptText("1") & "&returnUrl=" & Request.Url.AbsoluteUri)
            Return
        End If
[ VerbatimBOT @ 23.10.2006. 08:44 ] @
Ajde bre pomozite ljudi!
[ mirobor @ 23.10.2006. 12:29 ] @
Kako ti izgleda Page_Load i gdje provjeravas ima li sesije?
[ VerbatimBOT @ 25.10.2006. 14:42 ] @
U Page_Load sam stavio
Code:

If (Session("accountID") = Nothing)
Begin
Response.Redirect("nekaStrana.aspx")
Return
End

A najgore je od svega što mi na Webu sve radi bez problema. Samo u lokalu poblesavi.