webForumDet fria alternativet

global.asax problem.

3 svar · 237 visningar · startad av Nson

NsonMedlem sedan juni 2001145 inlägg
#1

Hejsan. Håller på med en sak o vill kolla om folk är inloggade eller inte via en databas.

Jag vill när en sida uppdateras fyra av

    Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)

        '
        ' Kolla om folk fortfarande är inloggade
        '
        If Request.IsAuthenticated Then
            '
            ' Bara om den som kollar på sidan är inloggad.
            '
            Dim myConnection As New System.Data.SqlClient.SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
            Dim myCommand As New System.Data.SqlClient.SqlCommand("UpdateOnlineStatus", myConnection)
            myCommand.CommandType = CommandType.StoredProcedure
            Dim myParam As New System.Data.SqlClient.SqlParameter("@fldAlias", SqlDbType.NVarChar, 25)
            myParam.Value = HttpContext.Current.User.Identity.Name.ToString
            myCommand.Parameters.Add(myParam)
            myConnection.Open()
            myCommand.ExecuteNonQuery()
            myConnection.Close()
        End If
    End Sub

Problemen är som följande:

1: If Request.IsAuthenticated Then
Detta fungerar inte. Den hittar alldrig nån som är inloggad.

2: myParam.Value = HttpContext.Current.User.Identity.Name.ToString
Blir alltid tomt och genererar felet:

Object reference not set to an instance of an object.

Kan bara säga en sak...

H j ä l p ;)

2:

renholmMedlem sedan apr. 20012 266 inlägg
#2

1. Vad för auth använder du? Forms? Windows?
2. Beror på att ingen är inloggad.

Om du använder FormsAuthentication så se till att du verkligen loggar på användaren. Tror det är där felet ligger.

Tips! När jag ser din kod verkar det lite onödigt att kolla om någon är inloggad via databas, det syns ju i alla fall på Request.IsAuthenticated. Eller har jag missat något?

NsonMedlem sedan juni 2001145 inlägg
#3

1: Använder Forms.

2: Men på en sida kan jag köra
StrConv(HttpContext.Current.User.Identity.Name.ToString(), VbStrConv.ProperCase) o då funkar det bra. Så jag tror inte riktigt på att det inte för att ingen är inloggad.

NsonMedlem sedan juni 2001145 inlägg
#4

Glömde en sak. Koden kollar inte om man är inloggad eller inte den kör ett SQL kommando som sätter en flagga så man kan köra tex en "Vem är inloggad just nu" sak.

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)