Avatar billede gimle007 Praktikant
18. februar 2011 - 09:04 Der er 3 kommentarer og
1 løsning

Remember me funktion i asp virker ikke

Hej folkes.

Jeg har været ved at skrive lidt om på et eksisternede script, men kan sku ikke få Remember me funktionen til at virke.

Jeg efterlader lige min kode.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

<%
If cstr(Request.Form("NsUsername"))<>"" Then
  If Request.form("NsSaveLogin") ="1" Then
    Response.Cookies("Kcookie") = Request.Form("NsCustomerNo")
    Response.Cookies("ucookie") = Request.Form("NsUsername")
    Response.Cookies("Pcookie") = Request.Form("NsPassword")
    Response.Cookies("Rcookie") = "1"
    Response.Cookies("ucookie").expires = Date + 30
    Response.Cookies("Pcookie").expires = Date + 30
    Response.Cookies("Kcookie").expires = Date + 30
    Response.Cookies("Rcookie").expires = Date + 30
  Else
    Response.Cookies("Rcookie") = ""
    Response.Cookies("Krcookie") = ""
    Response.Cookies("ucookie") = ""
    Response.Cookies("Pcookie") = ""   
  End If
End If
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Webshop Login</title>
<style type="text/css">
<!--
body {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 03px;
}
-->
</style>
<link href="css/webshoplogin.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
a:link {
    text-decoration: none;
}
a:visited {
    text-decoration: none;
}
a:hover {
    text-decoration: none;
    color: #B72B06;
}
a:active {
    text-decoration: none;
}
-->
</style></head>

<body>
<form action="http://webshop.com/login.aspx" method="post" target="_blank" id="form1">
<table width="160" border="0">
    <tr>
      <td width="153" class="skrifter">Kundenummer</td>
    </tr>
    <tr>
      <td><input value="<%= Request.Cookies("Kcookie") %>" name="NsCustomerNo" type="text" class="kasser" id="NsCustomerNo" /></td>
    </tr>
    <tr>
      <td class="skrifter">Brugernavn</td>
    </tr>
    <tr>
      <td><input value="<%= Request.Cookies("ucookie") %>" name="NsUsername" type="text" class="kasser" id="NsUsername" /></td>
    </tr>
    <tr>
      <td class="skrifter">Adgangskode</td>
    </tr>
    <tr>
      <td><input value="<%= Request.Cookies("Pcookie") %>" name="NsPassword" type="password" class="kasser" id="NsPassword" /></td>
    </tr>
    <tr>
      <td><p>
        <input name="Submit" type="submit" class="skrifter" value="Log ind" />     
      </p></td>
    </tr>
    <tr>
      <td><label>
        <input <%If (Request.Cookies("Rcookie") = "1") Then Response.Write("CHECKED") : Response.Write("")%> name="NsSaveLogin" type="checkbox" id="NsSaveLogin" value="1" />
      </label>        <span class="skrifter">Gem disse oplysninger</span></td>
    </tr>
    <tr>
      <td> </td>
    </tr>
    <tr>
      <td>></td>
    </tr>
  </table></form></body>
</html>
Avatar billede hifi4all Nybegynder
18. februar 2011 - 10:48 #1
Du kan ikke skrive en cookie og derefter requeste den i samme kørsel/pageload. Det vil sige at du i din HTML ikke kan få vist cookiens indhold, før siden loades een gang til.

I stedet bør du indsætte indholdet fra dit form request i HTML´en i stedet, og så gemme de oplysninger du vil anvende til senere brug i en cookie (én er nok, du skriver mange...)

Men jeg er lidt usikker på hvad det er du ønsker at opnå.¨

p.s.
At gemme password i en cookie er NO GO! :)
Avatar billede gimle007 Praktikant
18. februar 2011 - 10:58 #2
Hej

tak for svaret.

Jeg må nok sige at jeg er noget grøn på dette område :-)

Jeg ønsker at undgå at mine brugere skal indtaste deres login oplysninger hver gang. Det skal være den nemmeste måde... Kan godt se, at password nok ikke skal med ned i en cookie, det var vist en fejl 40 :-)

Er sku ikke helt med på hvad du mener, måske lidt mere uddybende forklaring :-)
Avatar billede softspot Forsker
18. februar 2011 - 13:53 #3
Prøv at sætte ExpiresAbsolute i stedet for Expires, således:

Response.Cookies("ucookie").ExpiresAbsolute = DateAdd("d", 30, now)

for at lægge 30 dage til.

Response.Cookies("ucookie").ExpiresAbsolute = DateAdd("d", -1, now)

for at slette en cookie.

Det er ok at aflæse cookies til formularen, som du gør. Der vil bare ikke være nogen værdier i dem første gang siden vises.

Dog er jeg enig med hifi4all i at password ikke hører til i en cookie. I stedet for at gemme selve kodeordet i cookie, kan du gemme en tilfældig genereret kode, som du gemme sammen med brugerens kodeord på serveren (i en database f.eks.). Når brugeren så kommer på siden igen, kan du tjekke om koden passer sammen med brugerens brugernavn og så bare logge brugeren på automatisk (så slipper denne helt for at bekymre sig om loginformularen.

Dette er heller ikke helt sikkert, da en cookie kan opfanges og benyttes af en anden bruger, men det er ikke så let, hvis man, som skummel person, skal generere sin egen cookie for at skaffe adgang i en anden brugers navn...
Avatar billede gimle007 Praktikant
29. marts 2011 - 11:09 #4
Har selv løst problemet... Den checkbox jeg brugte returnerede værdien "on" når den var vænget af og ikke "1" som ville have været mest logisk??!!!
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