Avatar billede kned Nybegynder
13. juni 2005 - 00:45 Der er 8 kommentarer

Log ind oplysninger forsvinder ved site-skift

Hej!

Når man er logget ind på følgende site http://iistest.ah.dk/TheGetAway/Activate/ (benyt brugernavn "kned" og password "hej") kommer de rigtige oplysninger. Dog når man trykke på hvilket som helst link på sitet, forsvinder log ud knappen og oplysningerne. Nogle har en ide om hvad der er galt?

Koden ser ud som følgende:

void LogInd(object sender, EventArgs E)
    { 
        string strBrugernavn = tbBrugernavn.Text;
        string strSkrevetAGK = tbAdgangskode.Text;
       
        string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + Server.MapPath("users.mdb");
        string strSQL = "SELECT Kodeord, Nummer, Username FROM Users WHERE Username = '" + strBrugernavn + "'";
       
        string strAdgangskode = "";
       
        int intNummer =0;
       
        OleDbConnection objConnection = new OleDbConnection(strConnection);
        OleDbCommand objCommand = new OleDbCommand(strSQL, objConnection);
        OleDbDataReader objDataReader = null;
        objConnection.Open();
        objDataReader = objCommand.ExecuteReader();

        while (objDataReader.Read() == true)
        {
            strAdgangskode = Convert.ToString(objDataReader["Kodeord"]);
            intNummer = Convert.ToInt32(objDataReader["Nummer"]);
        }

       
        if (strAdgangskode == strSkrevetAGK)
        {
            Session["brugernavn"] = strBrugernavn;
       
            objConnection.Close();
            objDataReader.Close();
       
            OleDbConnection OurConnection;
            OleDbCommand OurCommand;
            OleDbDataAdapter OurDataAdapter;
           
            DataSet OurDataSet;
            OurDataSet = new DataSet();
           
            OurConnection = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + Server.MapPath("users.mdb"));
            OurCommand = new OleDbCommand("Select * From Dato Where CardNumber = " + intNummer + "", OurConnection);
           
            OurDataAdapter = new OleDbDataAdapter(OurCommand);
           
            OurDataAdapter.Fill(OurDataSet, "Dato");
            logindRepeater.DataSource = OurDataSet.Tables["Dato"].DefaultView;
            logindRepeater.DataBind();
        }

        else
        {
            Response.Redirect("forkert_kodeord.htm");
        }
    }
    void LogUd (object sender, EventArgs E)
        {
        Session["brugernavn"]="";
        }
Avatar billede dch Nybegynder
13. juni 2005 - 10:32 #1
Er login "boksen" en control, eller bare en del af sidens kode?

Vil gerne se koden der sørger for at vise "hej <bruger>" teksten. du har vel i pageLoad metoden en kontrol på om Session["brugernavn"] er sat?
Avatar billede kned Nybegynder
13. juni 2005 - 10:40 #2
Her er koden til "hej <bruger>":

%>
            <asp:Repeater id="logindRepeater" runat="server">
                <headertemplate>
                    <table style="border: 0px; font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif;" cellpadding="6" cellspacing="0">
                </headertemplate>
                <itemtemplate>
                        <tr>
                            <td class="tekst1" style="padding-left: 18px;">
                                Hej <b><% Response.Write(Session["brugernavn"]); %></b>
                                <br />
                                Dit medlemsskab udløber den:
                                <br />
                                <b><%# DataBinder.Eval(Container.DataItem, "ExpiryDate") %></b>
                                <div style="margin-top:5 "><asp:Button runat="server" ID="LogUd" Text="Log ud" CssClass="Formskrift" Width="50" Height="17" OnClick="LogUd"/></div>
                            </td>
                        </tr>
                </itemtemplate>
                <footertemplate>
                    </table>
                </footertemplate>
            </asp:Repeater>
        <%

Ang. PageLoad, hvordan skal det opstilles?
Avatar billede dch Nybegynder
13. juni 2005 - 10:50 #3
det kode du viser der er en del af "front-end filen" - altså .aspx. Selve PageLoad() Metoden ligger i aspx.cs filen som er tilknyttet til .aspx filen. Problemet er at du kun databinder når der klikkes på "log in". dvs repeateren kun fodres med data én gang. Den logik der bestemmer en side (eller komponents) indhold skal ligge i PageLoad() metoden, som bliver kørt hver gang siden (kontrollen) indlæses. du kan så fx kigge på om Session["brugernavn"] er sat, og derved beslutte om login kasser skal vises, eller om brugeren er logget ind.

En repeater er sådan set heller ikke beregnet til visning af "en linie". du kan bare lave en helt almindelig tabel, og udskrive informationerne på den måde.

<table>
<tr>
  <td>
  Hej <%=Session["brugernavn"];%>
  </td>
</tr>
<tr>
  <td>
  Dit medlemsskab udløber den:<br>
  <%=Hvor så end du vil lagre ExpiryDate%>
  </td>
</tr>
</table>
Avatar billede kned Nybegynder
13. juni 2005 - 11:09 #4
Ja, det lyder meget rigtigt, men siden vi ikke er så skide hardcore til ASP.NET, så er vi kørt fast i hvordan Page_Load koden egentlig skal udformes.
Og en aspx.cs fil har vi aldrig haft om på studiet :) eller database arbejde for den sags skyld.
Avatar billede dch Nybegynder
13. juni 2005 - 11:15 #5
0k. Skal siden rent faktisk i produktion, eller er det et projekt? :)

Vi må lige finde på noget.
Avatar billede kned Nybegynder
13. juni 2005 - 11:25 #6
Kun et projekt :)

Ja, skal "vi" ikke det? :D
Avatar billede dch Nybegynder
13. juni 2005 - 11:28 #7
Hehe.

Ved du hvad - send mig koden, så skal jeg fandme få det til at spille. ;)

dch@shr.dk
Avatar billede kned Nybegynder
13. juni 2005 - 11:36 #8
Ok, det gør jeg så! Takker for det!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester