Archief - ASP.NET: beginners vraagjes...

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

sgtsylvester

Legacy Member
hallo,

Kben zo bezig met mijn eerste klein asp.net projectje en ben er nie zo goed in, vandaar enkele vraagjes. :)


Ik heb mijn inlogsysteempje zelf gemaakt en geen gebruik gemaakt van de login tools die in asp.net zelf zitten. Omdat het integeren van mijn database dan wat ingewikkelder is.

Bij het inloggen maak ik een DES versleutelde cookie. Zet wat zaken visible, unvisible. Op de inloggen button zit een postback naar dezelfde pagina dit werkt goed.

Bij het uitloggen lukt niet alles perfect. Ik moet zowat 3 keer op de uitloggen knop drukken. Ik vermoed dat ik niet helemaal de principes van postback en dergelijke snap. Precies of hij maar de helft overloopt van de code uit het "Page_Prerender" event. Dus mijn vermoeden is dat ik een deel van de code in de "Page_Prerender", "Page_Load", "Page_Init" moet zetten/verzetten?

Ik wil er wel nog aan toevoegen dat ik het inloggen wat veiliger ga maken, dit is voorlopig.



Code:
Partial Class MasterPage
    Inherits System.Web.UI.MasterPage
    Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
        If Not (Request.Cookies("kingOfSoccer.be") Is Nothing) Then
            Dim oCookie As HttpCookie = Request.Cookies("kingOfSoccer.be")
            Dim gebruikersnaam As String = CryptoUtil.DecryptTripleDES(oCookie.Values("Gebruikersnaam"))
            inloggen(gebruikersnaam)
        End If
    End Sub
    Protected Sub btnInloggen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnInloggen.Click
        Dim paswoord As String = ""

        lblPaswoordFout.Text = ""
        lblGebruikersnaamFout.Text = ""

        If txtGebruikersnaam.Text.Length > 0 And txtPaswoord.Text.Length > 0 Then

            paswoord = clsDeelnemersDA.GetPaswoord(txtGebruikersnaam.Text)

            If paswoord IsNot Nothing Then
                If txtPaswoord.Text = paswoord Then
                    maakcookie()

                    lblGebruikersnaam.Text = "Welkom " & clsDeelnemersDA.GetVolledigeNaam(txtGebruikersnaam.Text)
                    txtGebruikersnaam.Visible = False
                    txtPaswoord.Visible = False
                    lblPaswoord.Visible = False
                    btnInloggen.Visible = False
                    btnUitloggen.Visible = True
                Else
                    lblPaswoordFout.Text = " Incorrect"
                End If
            Else
                lblGebruikersnaamFout.Text = " Incorrect"
            End If


        End If

        If txtGebruikersnaam.Text.Length <= 0 Then
            lblGebruikersnaamFout.Text = " Niet ingevult"
        End If

        If txtPaswoord.Text.Length <= 0 Then
            lblPaswoordFout.Text = " Niet ingevult"
        End If




    End Sub
    Protected Sub btnUitloggen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUitloggen.Click
        uitloggen()
    End Sub
    Private Sub maakcookie()
        If (Request.Cookies("kingOfSoccer.be") Is Nothing) Then
            Dim oCookie As New HttpCookie("kingOfSoccer.be")
            oCookie.Value = DateTime.Now.ToString
            oCookie.Values.Add("Gebruikersnaam", CryptoUtil.EncryptTripleDES(txtGebruikersnaam.Text))
            oCookie.Values.Add("Paswoord", CryptoUtil.EncryptTripleDES(txtPaswoord.Text))
            oCookie.Values.Add("IP", CryptoUtil.EncryptTripleDES(Convert.ToString(HttpContext.Current.Request.ServerVariables("http://localhost:2687/KingOfSoccer.Website/index.aspx"))))
            oCookie.Expires = DateTime.Now.AddMinutes(15)
            Response.Cookies.Add(oCookie)
        End If
    End Sub
    Private Sub inloggen(ByVal gebruikersnaam As String)
        lblGebruikersnaam.Text = "Welkom " & clsDeelnemersDA.GetVolledigeNaam(gebruikersnaam)
        txtGebruikersnaam.Visible = False
        txtPaswoord.Visible = False
        lblPaswoord.Visible = False
        btnInloggen.Visible = False
        btnUitloggen.Visible = True

        If clsDeelnemersDA.GetProfiel(gebruikersnaam) = "F" Or clsDeelnemersDA.GetProfiel(gebruikersnaam) = "C" Then
            btnAdminPanel.Visible = True
        End If
    End Sub
    Private Sub uitloggen()
        If Not (Request.Cookies("kingOfSoccer.be") Is Nothing) Then
            Dim oCookie As HttpCookie = Request.Cookies("kingOfSoccer.be")
            oCookie.Expires = DateTime.Now.AddDays(-1)
            Response.AppendCookie(oCookie)
        End If

        lblGebruikersnaam.Text = "Gebruikersnaam:"
        txtGebruikersnaam.Visible = True
        txtPaswoord.Visible = True
        lblPaswoord.Visible = True
        btnInloggen.Visible = True
        btnUitloggen.Visible = False
        btnAdminPanel.Visible = False
    End Sub
End Class

voor alle duidelijkheid, deze code komt uit de masterpage.

mvg:crazy:

BloodSeaker

Legacy Member
Ten eerste stel ik me de vraag wat die cookie code in de prerender doet, ma kom, da maakt het niet. Alleen het feit dat je bij het uitleggen een append van de cookie doet, dat snap ik niet. Volgens mij hoeft dat helemaal niet

sgtsylvester

Legacy Member
ik begin het zowat door te krijgen. Problemen zijn zogoed als opgelost.

init --> load --> events --> prerender



Nu zit ik met het volgende probleem ik werk met een gridview en ik kan die half bewerken de waardes uit de dropdownlists die hij aanroept zijn niet de waardes die ik zojuist heb veranderd maar wel deze uit de eerste gridview blijkbaar haalt hij deze waarde niet meer op.

BloodSeaker

Legacy Member
sgtsylvester zei:
ik begin het zowat door te krijgen. Problemen zijn zogoed als opgelost.

init --> load --> events --> prerender



Nu zit ik met het volgende probleem ik werk met een gridview en ik kan die half bewerken de waardes uit de dropdownlists die hij aanroept zijn niet de waardes die ik zojuist heb veranderd maar wel deze uit de eerste gridview blijkbaar haalt hij deze waarde niet meer op.


De wondere wereld van de editeerbare gridview. Om eerlijk te zijn: ik gebruik het zelden tot nooit. Ik gebruik nog liever een soort 'edit panel' dat openklapt wanneer de gebruiker op het edit icoontje klikt.

Anyway, Na je edit command (het saven ervan dus) moet je best opnieuw een FillGrid doen. Hij heeft nl op dit moment wel in zijn viewstate de waarde van de dropdown bewaard, maar ik denk dat je na het saven niet meer in de edit mode blijft zitten he, maar gewoon naar de weergave gaat. Uiteraard had hij die waarde ook nog leuk in zijn viewstate zitten => de oude waarde.

Gewoon een FillGrid in je save evnt en het probleem is opgelost. Let dan wel op dat je niet gewoon een FillGrid() doet in je Page_Load, maar het daar hebt staan in een " if (!Page.IsPostback) " clause, anders ga je bij het bewaren 2 maal een FillGrid uitvoeren, wat uiteraard overbodig is
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan