Avatar billede halden Nybegynder
03. februar 2004 - 23:53 Der er 7 kommentarer og
1 løsning

login tjek på side

jeg har en login.aspx og en forside.aspx. hvis man kommer gennem login bliver man sendt til forside. Problemet er bare at når jeg er kommet til forside og trykker F5 så smider den mig tilbage til login.aspx. Her er lidt af koden i forside:
private void Page_Load(object sender, System.EventArgs e) {
  if ( Equals(Session["brugernavn"], "admin") == true ) {
    Velkomstbesked.Text = "Velkommen <b>"+Session["brugernavn"]+"!</b>";
  }
  else {
    Response.Redirect("login.aspx");
  }
}

hvorfor smider den mig tilbage til login når jeg trykker på F5 ???
Avatar billede thor.ostergaard Nybegynder
04. februar 2004 - 06:41 #1
Hvorfor bruger du ikke .NET's indbyggede sikkerhedsmodel?
Du kan læse lidt om den her:
http://www.kursusmaterialer.dk/ASP.NET%20II/Sikkerhed/Brug%20af%20forms%20modellen.aspx
Avatar billede jepsen999 Nybegynder
04. februar 2004 - 07:58 #2
Jeg tror dit problem ligger et andet sted (måske login.aspx), for din kode fungerer som den skal med f.eks. :

this.Session["brugernavn"] = "admin";
this.Response.Redirect("webform2.aspx");

på login-siden.
Avatar billede thrytter Nybegynder
04. februar 2004 - 12:39 #3
Fejlen ligger i linien "Equals(Session["brugernavn"], "admin") == true".

Kender ikke funktionen Equals og c# men det ser ud til at du laver en typesammenligning. Prøv derfor at lave en ToString eller hvad det hedder i c# inden sammenligning.
Avatar billede halden Nybegynder
04. februar 2004 - 13:07 #4
->thor.ostergaard: da jeg kun har en enkelt bruger vil jeg gerne holde det simpelt.
->thrytter: du havde ret, der manglede bare .ToString() - svar for point
Avatar billede thrytter Nybegynder
04. februar 2004 - 13:22 #5
ok
Avatar billede jepsen999 Nybegynder
04. februar 2004 - 22:17 #6
Hmm det fatter jeg ikke rigtigt. Så burde følgende procedure vel også skrive "false":
static void Main(string[] args)
{
    object o = "admin";
    string s = "admin";
    if (Equals(o,s))
    {
    Console.WriteLine("true");
    }
    else
    {
    Console.WriteLine("false");
    }
}
Det gør den ikke, - men sådan er der vel så meget...
Avatar billede thrytter Nybegynder
05. februar 2004 - 11:27 #7
Skyldres at han lavede en Object.Equals mens du lavede en String.Equals...

Hvis du tjekker typerne på o og s vil du se at de er ens, nemlig System.String - og derfor vil Equals være en value-sammenligning.
Avatar billede jepsen999 Nybegynder
06. februar 2004 - 07:53 #8
Halden lavede også en String.Equals, da Session["brugernavn"].GetType() giver en string, hvis der er lagt en string ind - i dette tilfælde "admin".

Nå men, Halden er kommet videre - det må jeg også hellere... ;)
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