Avatar billede loopstudio Nybegynder
23. marts 2007 - 11:11 Der er 5 kommentarer

Problem med sessions-variabel..

Hejsa..

Jeg har lavet mit eget login-system baseret på brugerdata liggende i en MS Access db.

Jeg har en login-side og en side der skal vises efter login.

Det mærkelige er at tit så første gang jeg logger ind, så kan den ikke se at sessions-variablen er oprettet, hvilket den BURDE være!

Idet at passwordet stemmer, gemmer jeg ellers brugerid i en sessions-variabel og dirigerer derefter til indholdssiden. Indholdssiden checker så sessions-variablen. Men første gang så er den som regel tom!?

Ved I hvad det kan skyldes?
Avatar billede loopstudio Nybegynder
23. marts 2007 - 11:21 #1
KODEN:
----------------------------

Login-knappen på login-siden:
-----------------------------
<asp:Button ID="Button2" runat="server" OnClick="butSignOn_Click" Text="Login" />

Login-kode-behind:
-------------------
protected void butSignOn_Click(object sender, EventArgs e)
{
  if (CheckPassword(txtUserName.Text, txtPassword.Text))
    FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, false); //false=varer ikke across sessions!
}

--------------
private bool CheckPassword(string UserName, string Password)
{
  bool bSuccess = false;
  OleDbConnection oledbUsers = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/database.mdb;Persist Security Info=True");
  OleDbCommand oleCommand = new OleDbCommand("SELECT * FROM tabel WHERE felt=" + txtUserName.Text, oledbUsers);
  try
    {
      oledbUsers.Open();
      OleDbDataReader rdrUsers = oleCommand.ExecuteReader();
      while (rdrUsers.Read())
      {
        Label1.Text = rdrUsers["Password"].ToString();
        if (Password == rdrUsers["Password"].ToString())
        {
          bSuccess = true;
          Session["SystemIDNr"] = rdrUsers["SystemIDnr"];
          Session["Navn1"] = rdrUsers["Navn1"];
        }
      }
      oledbUsers.Close();
  }

------------

SIDEN DER SKAL VISES:
---------------------
protected void Page_Load(object sender, EventArgs e)
{
  lbNavn1.Text = "Du er ikke logget ind";
  if (Session["Navn1"] != null)
  {
    lbNavn1.Text = Convert.ToString(Session["Navn1"]);
  }
}
Avatar billede dr_chaos Nybegynder
25. marts 2007 - 16:57 #2
muligvis kan de skyldes at der er flere hits på din sql sætning.
Avatar billede loopstudio Nybegynder
27. marts 2007 - 15:11 #3
ok.. hmm.. men det plejer kun at være FØRSTE gang jeg logger ind..

Så burde det vel fejle hver gang jeg logger ind med samme login-data??
Avatar billede dr_chaos Nybegynder
27. marts 2007 - 23:29 #4
ja det er rigtigt.
Avatar billede loopstudio Nybegynder
28. marts 2007 - 10:08 #5
Er der nogen der har andre ideer?

Kan det have noget at gøre med at man kører localhost og bruger VS2005's egen midlertidige webserver-visning?
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