Avatar billede ingeman Seniormester
09. juni 2007 - 17:28 Der er 11 kommentarer og
1 løsning

Session lost

jeg bruger session("login")=true

men efter redirect har jeg mistet indholdet at session("login") ?

jeg IIS 6.0
Avatar billede erikjacobsen Ekspert
09. juni 2007 - 17:30 #1
Visse udgaver (ældre troede jeg) af IIS kan ikke kapere at sætte en cookie/sessioncookie og lave en redirect på een gang. Måske er det hvad du er løbet ind i (der er ikke for mange oplysninger at tage udgangspunkt i). Du kan evt. prøve at lave en redirect med lidt Javascript.
Avatar billede ingeman Seniormester
09. juni 2007 - 17:35 #2
hvordan med javascript ?
Avatar billede erikjacobsen Ekspert
09. juni 2007 - 17:37 #3
Enten

<meta http-equiv="refresh" content="2; URL=redirectiontarget.htm">

(det er selvfølgelig ikke Javascript). Eller

window.location.href = "redirectiontarget.htm";
Avatar billede ingeman Seniormester
09. juni 2007 - 17:37 #4
Session("autnum")=RS.Fields("Autnr")
          Session("admloggedin")=true
          Session("ip")=RS.Fields("WanIP")
          RS.Close
 
 
  Response.Redirect("/system/default.asp")

efter det har kald er session's indhold væk !
Avatar billede thesurfer Nybegynder
09. juni 2007 - 18:06 #5
ingeman> Har du overset erikjacobsen's indlæg 09/06-2007 17:37:43?
Avatar billede ingeman Seniormester
09. juni 2007 - 18:09 #6
ja men mangler hvordan asp skal se ud for at kalde det han siger ?
Avatar billede ingeman Seniormester
09. juni 2007 - 18:11 #7
Hele kode:

<html>
<head>
    <title>SystemLogin</title>
<meta name="Generator" content="Stone's WebWriter 4">
</head>
<body    target="hovedramme">


<!-- #INCLUDE VIRTUAL="/includes/dbstart.asp" -->

<%



  ' Tøm gammel info
  Session("autnum")=""
  Session("admloggedin")=false




  AutNum=Request("AutNum")
  If AutNum="" then Autnum=Request.querystring("autnum")
 
  If AutNum="" Then Response.Redirect("default.asp?fejl=1")
  If Not(IsNumeric(AutNum)) Then Response.Redirect("default.asp?fejl=1")
 
  AdmPassword=Request("Password")
  If AdmPassword="" Then AdmPassword=Request.querystring("password")
 
  If AdmPassword="" Then Response.Redirect("default.asp?fejl=1")
 
  ' Aut. num + password er tastet, så test om de er OK


  StrSQL="SELECT * FROM FirmaKart where AutNr=" & AutNum & " AND AdministratorPassword='" & AdmPassword &"' AND Administrator=true"
 
  RS.open strSQL, loConn ,3,3 
  If RS.EOF Then
    ' Ikke fundet administrator
    RS.Close
   
        'kik efter bruger
        StrSQL="SELECT * FROM FirmaKart where AutNr=" & AutNum & " AND Password='" & AdmPassword &"' "
          RS.open strSQL, loConn ,3,3 
          If RS.EOF Then
            ' Ikke fundet Bruger
            RS.Close
            Response.Redirect("default.asp?fejl=1")
        else
                ' Hent info ind
              Session("autnum")=RS.Fields("Autnr")
              Session("admloggedin")=false
              Session("ip")=RS.Fields("WanIP")
              RS.Close
        end if
       
  else
        ' Hent info ind
          Session("autnum")=RS.Fields("Autnr")
          Session("admloggedin")=true
          Session("ip")=RS.Fields("WanIP")
          RS.Close
         
  End if
 
  Response.Redirect("/system/default.asp")
 
 
%>
<!-- #INCLUDE VIRTUAL="/includes/dbslut.asp" -->
Avatar billede thesurfer Nybegynder
09. juni 2007 - 18:51 #8
Ting jeg falder over, ved at kigge på din kode (i vilkårlig rækkefølge):

- Manglende doctype
Roenving vil sikkert krumme tæer (fordi jeg linker til html.dk), men her er doctype forklaret: http://www.html.dk/artikler/00036/

- Password i urlen
Jeg kan se, at du henter passwordet fra urlen.
Det er meget dumt, da en hvilken som helst person, der sætter ved computeren efter du har forladt den, kan logge ind som dig/administrator, ved at besøge de besøgte sider i historikken/oversigten.
I stedet for at bruge method="get", i din login-form, skal du bruge method="post".
Du skal tilsvarende rette Request.querystring til Request.Form ved både "AutNum" og "AdmPassword".

Generelt: Brug aldrig "Request" alene, men i kombination af enten ".Querystring" eller ".Form".
Avatar billede thesurfer Nybegynder
09. juni 2007 - 18:59 #9
For at svare på dit spørgmål, ville jeg nok lave det sådan her:

<%
dim status
status = ""

' asp koden her

' erstat Response.Redirect("default.asp?fejl=1") med: status = "default.asp?fejl=1"

' erstat  Response.Redirect("/system/default.asp") med: status = "/system/default.asp"

%>

<html>
<head>
<title>SystemLogin</title>
<meta name="Generator" content="Stone's WebWriter 4">
<% if status <> "" then %>

<meta http-equiv="refresh" content="0; URL=<%=status%>">
window.location.href = "<%=status%>";

<% end if %>
</head>
<body target="hovedramme">

Du har enten deaktiveret JavaScript eller muligheden for redirect via meta-tag'et.
<br><br>
Du læser denne tekst, fordi dit login er mislykkes.
<br><br>
Du ville have været blevet sendt over til <a href="default.asp?fejl=1">denne side</a>.

</body>
Avatar billede thesurfer Nybegynder
09. juni 2007 - 19:00 #10
Rettelse (manglede "</html>"):

For at svare på dit spørgmål, ville jeg nok lave det sådan her:

<%
dim status
status = ""

' asp koden her

' erstat Response.Redirect("default.asp?fejl=1") med: status = "default.asp?fejl=1"

' erstat  Response.Redirect("/system/default.asp") med: status = "/system/default.asp"

%>

<html>
<head>
<title>SystemLogin</title>
<meta name="Generator" content="Stone's WebWriter 4">
<% if status <> "" then %>

<meta http-equiv="refresh" content="0; URL=<%=status%>">
window.location.href = "<%=status%>";

<% end if %>
</head>
<body target="hovedramme">

Du har enten deaktiveret JavaScript eller muligheden for redirect via meta-tag'et.
<br><br>
Du læser denne tekst, fordi dit login er mislykkes.
<br><br>
Du ville have været blevet sendt over til <a href="default.asp?fejl=1">denne side</a>.

</body>
</html>


Det skal lige sige, at jeg har skrevet indlæggene direkte ind på eksperten.dk, og det kan sagtens være fejl.. :-)
Avatar billede ingeman Seniormester
23. juni 2007 - 11:04 #11
har løst problemet - skyldes at dandomain leverer domain navn i browserkald.
Avatar billede ingeman Seniormester
23. juni 2007 - 11:04 #12
lukket
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
Kurser inden for grundlæggende programmering

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