Avatar billede larsen45 Juniormester
26. august 2007 - 15:48 Der er 16 kommentarer og
1 løsning

Sikkert bruger login med asp

Hejsa eksperter.

Hvordan laver jeg et simpelt men stadig sikkert bruger login funktion.

Jeg har nogle asp sider som jeg skal have sikret med bruger login
og de asp websider skulle helst være så sikret som det nu fysisk er muligt.

Jeg har en access database med følgende:

Min database hedder: dblogin
Min tabel hedder: tabellogin
Felterne:
id  (Autonummerering)
navn (Tekst)
password (Tekst)
email (Tekst)

Og jeg har en formular (login.asp) side med:

<html>
<head>
<TITLE>Login</TITLE>
</head>
<body>

<form name="loginme" method=post action="executelogin.asp">
<h2 style="margin-top: 0; margin-bottom: 0"><font face="Verdana">Login</font></h2>
<table width="122" border="1">
  <tr>
      <td width="112" height="30">
        <p style="margin-top: 0; margin-bottom: 0"><b><font face="Verdana" size="2">Brugernavn</font></b><font face="Verdana" size="2"><b>:</b></font></td>
  </tr>
  <tr>
      <td width="112">
        <p style="margin-top: 0; margin-bottom: 0"><font face="Verdana">
        <input name=Brugernavn size=13 style="font-weight: 700"></font></td>
      </tr>
  <tr>
      <td width="112">
        <p style="margin-top: 0; margin-bottom: 0"><b>Password:</b></td>
      </tr>
  <tr>
      <td width="112">
        <p style="margin-top: 0; margin-bottom: 0"><font face="Verdana">
        <input name=Password size=13 style="font-weight: 700"></font></td>
      </tr>
  <tr>
      <td width="112">
        <p style="margin-top: 0; margin-bottom: 0"><font face="Verdana">
       
        <input type=submit value="Send" name="logmigind"></font></td>
  </tr>
    </table>
<p style="margin-top: 0; margin-bottom: 0"><b><font color="#0000FF">Glemt
password?</font></b></p>
</form>

</body>
</html>

Spørgsmålet lyder så på hvordan for jeg lavet selve asp delen.
og ikke mindst sikret hver enkelt asp side.
Avatar billede larsen45 Juniormester
26. august 2007 - 15:51 #1
Hvis passwordet kan sikres med htaccess er det nok det bedste.
Avatar billede keysersoze Ekspert
26. august 2007 - 18:24 #2
Avatar billede ffsoft Praktikant
26. august 2007 - 21:50 #3
Du kan se en løsning her: http://www.ffforening.dk under "Din side"
og så hente koden her http://www.ffsoft.dk under "Eksempler"
Avatar billede larsen45 Juniormester
26. august 2007 - 22:43 #4
ffsoft siden: http://www.ffsoft.dk/eksempler.asp kan ikke vises
Til: keysersoze jeg kan måske bruge nået af det på activedeveloper siden. Dog skal jeg have mere konkret hjælp til hvordan jeg for videre udbygget asp delen til selve min formular som jeg har i forvejen. Jeg har brugt en del krudt på at lede efter info nu omkring MD5 kryptering af selve passwordet men ved ikke om der er nogen som også kan hjælpe mig med det herinde på eksperten.
Avatar billede keysersoze Ekspert
26. august 2007 - 22:47 #5
hvis du giver lidt mere info omkring hvor du går i stå kan vi måske lettere hjælpe med at tilpasse.

mht MD5 så er det så simpelt som at finde en MD5-fil og så kalde funktionen derfra - fx md5(PASSWORD)
Avatar billede larsen45 Juniormester
27. august 2007 - 00:14 #6
ja lige nu ser det sådan her ud:

Loginformular.asp
-----------------------
<html>
<head>
<TITLE>Loginformular</TITLE>
</head>



<body>

<form name="logging" method=post action="logintjek.asp">
<h2><font face="Verdana">Login funktion</font></h2>
<table width="123" border="1">
  <tr>
      <td width="113" height="30">
        <p style="margin-top: 0; margin-bottom: 0">
        <font face="Verdana" size="2">Brugernavn</font></p>
        <p style="margin-top: 0; margin-bottom: 0"><font face="Verdana">
        <input type=text name=navn size=15></font></td>
  </tr>
  <tr>
      <td width="113" height="30">
        <p style="margin-top: 0; margin-bottom: 0">
        <font face="Verdana" size="2">Password</font></p>
        <p style="margin-top: 0; margin-bottom: 0"><font face="Verdana">
        <input type=text name=dato size=15></font></td>
  </tr>
  <tr>
      <td width="113" height="30">
        <p align="center" style="margin-top: 0; margin-bottom: 0">
        <font face="Verdana">
        <input type=submit value="login" name="logmigind"></font></td>
  </tr>
    </table>
</form>


</body>
</html>



Logintjek.asp
--------------------
<% Response.Buffer = true %>
<%
If Request.Form("logmigind") = "Login" Then
  strnavn = Trim(Replace(Request.Form("navn"),"'",""))
  strpassword = Trim(Replace(Request.Form("password"),"'",""))

  ' Hvis der er skrevet noget i både brugernavn og adgangskode
  If Len(strnavn) > 0 And Len(strpassword) > 0 Then

    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../db/dblogin.mdb")

    strSQL = "SELECT tabellogin FROM id"&_" WHERE (navn = '" & strnavn & "')"&_" AND (Password = '" & strpassword & "')"

    Set rs = myConn.Execute(strSQL)
    If Not (rs.BOF Or rs.EOF) Then

     
      navn = rs("navn")
      password = rs("password")
     
    Else
   
      Response write "Du blev ikke godkendt desværre"
    End If

    Conn.Close
    Set Conn = Nothing

    If Len(password) and (brugernavn)  Then
      Session("navn") = navn
      Session("password") = password
     
      Response.Redirect("loginkorrekt.asp")
    End If
  Else


    Response write "Du skal skrive både brugernavn og adgangskode"
  End If
End If
%>


Loginkorrekt.asp
------------------
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Loginkorrekt</title>
</head>

<body>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../../db/dblogin.mdb")
Conn.Open DSN

strSQL = "SELECT * FROM tabellogin ORDER BY navn"
Set rs = Conn.Execute(strSQL)
%>


Du er nu logget korrekt ind.
<br>
Velkommen: <%=rs("navn")%>

<%
rs.Close
Conn.Close
Set Conn = Nothing
Set rs = Nothing
%>


</body>

</html>


Men der skal nok startes med første skridt med at jeg skal have hjælp til hvordan jeg for min logintjek.asp fil til at virke så den tjekker korrekt login og videre sendes vedkommende til loginkorrekt.asp
Avatar billede ffsoft Praktikant
27. august 2007 - 08:42 #7
ffsoft siden: http://www.ffsoft.dk/eksempler.asp kan ikke vises
Siden hedder eksempler.aspx.

Overordnet:
Du har en login side med brugernavn og ved submit sendes brugeren videre til logintjek.asp. Data overføres ved hjælp af POST.

Her skal det indtastede valideres og checkes op imod en tabel i en database. Hvis der findes en post, hvor brugernavn og password svarer til det indtastede, er der et hit og så kan du sætte en session variabel.
Hvis det indtastede ikke findes, sendes brugeren til en "Fejl" side og ellers til en "Velkommen" side.
På alle sider der skal være beskyttede, checker du så om denne sessionsvariabel er sat.
Det er rigtigt at password bør være krypterede, men det kan tilføjes.

Du har LoginFormular.asp, LoginTjek.asp og LoginKorrekt.asp
det svarer til Login, Check og Velkommen, du mangler en fejlside samt at validere det indtastede samt sætte en sessionsvariabel.

Validering:
http://www.ffsoft.dk/uvmat/asp/docs/aspUV0801.pdf

Sessions variabel:
http://www.ffsoft.dk/uvmat/asp/docs/aspUV0601.pdf
Avatar billede larsen45 Juniormester
27. august 2007 - 23:32 #8
okay ffsoft jeg har nu lavet en fejllogin.asp side.

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>fejllogin.asp</title>
</head>

<body>
Du har ikke skrevet korrekt login oplysninger.
</body>

</html>

Men hvordan skal så selve asp delen se ud på de 4 asp sider jeg så har nu?
for at jeg kan få det til at virke.
Avatar billede ffsoft Praktikant
28. august 2007 - 17:33 #9
Jeg laver lige et par sider til dig.
Avatar billede ffsoft Praktikant
28. august 2007 - 18:19 #10
Login.asp

<html>
<head>
<title>Log in</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form1" method="post" action="check.asp">
Navn<input name="txtNavn" type="text" id="txtNavn"><br>
Kode<input name="txtKode" type="password" id="txtKode"><br>
<input type="submit" name="Submit" value="OK">
</form>
</body>
</html>

To felter overføres ved hjælp af POST til siden check.asp
Avatar billede ffsoft Praktikant
28. august 2007 - 18:25 #11
check.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<% ' Rettet 28-08-2007
Option Explicit
Response.Expires = 0
Dim conn, rst, strSQL
Dim strNavn, strKode
Set conn = Server.CreateObject("ADODB.Connection")
Set rst = Server.CreateObject("ADODB.Recordset")
' Hent data fra forrige side
strNavn = trim(request.Form("txtNavn"))
strKode = trim(request.Form("txtKode"))
'--------------
' *** MAW
' Validering skal se her
'--------------
strSQL = "SELECT Navn, Password FROM tblLogin "
strSQL = strSQL & "WHERE Navn='" & strNavn & "' AND Password='" & strKode & "';"
'response.write strSQL & "<br>"
conn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & server.MapPath("db/dblogin.mdb") & ";Uid=;Pwd=;"
set rst = Conn.Execute (strSQL)
if rst.bof and rst.eof then
  session("LoggetInd") = false
  else
  session("LoggetInd") = true
end if
rst.close
conn.close
if session("LoggetInd") then
  response.redirect("velkommen.asp")
  else
  response.redirect("login.asp")
end if
%>

Værdierne fra felterne hentes og strikkes ind i et SQL udtryk. Hvis der er et hit er det fordi der findes en bruger med det navn og den kode der er indtastet.
En session variabel tildeles værdien true/false alt efter hit/no hit.
Der hoppes til velkommen siden hvis værdien er true og ellers tager vi en tur mere på login siden.
Du skal rette til i database stien så den svarer til hvad du nu har.

Der mangler at blive lave validering på det indtastede.
Avatar billede ffsoft Praktikant
28. august 2007 - 18:27 #12
velkommen.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<% ' Rettet 28-08-2007
Option Explicit
if session("LoggetInd") then
  ' Brugeren er godkendt
  else
  response.redirect("login.asp")
end if
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Velkommen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
Velkommen
</body>
</html>

Koden i toppen vil sende brugeren til login siden hvis hun ikke er godkendt. Denne kode skal stå i toppen af alle sider der skal være beskyttet.
Avatar billede larsen45 Juniormester
28. august 2007 - 23:09 #13
super godt ffsoft nu har jeg fået det til at virke. Men jeg sidder lidt fast på nogle områder.

loginformular.asp skal jeg have lavet en retur tekst besked under hvor man taster login oplysninger, som siger: du er desværre ikke logget ind.

velkommen.asp skal jeg have vist navnet på den som er logget ind, og påsat en knap hvor man kan logge af igen. Og hvis man er logget af kan man ikke komme ind igen, uden at man taster login oplysningerne igen.

Og i min check.asp fil skal jeg have tjekket passwordet og brugernavn med md5 så det bliver sikret. Jeg har oprettet et ekstra felt i min tabel som hedder bruger, som så kan vise personens navn på velkommen.asp
Avatar billede ffsoft Praktikant
05. september 2007 - 15:13 #14
I filen check.asp skal du rette til:

response.redirect("login.asp?FejlID=1")

altså hvis man ikke skriver det korrekte brugernavn og kode bliver
man sendt tilbage login med en fejl.

På login siden må du så checke om der er en fejlkode og hvis ja så præntere
en fejltekst:
Avatar billede ffsoft Praktikant
05. september 2007 - 15:14 #15
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<% Dim strFejl, intFejl
intFejl = 0
intFejl = request.QueryString("FejlID")
if intFejl = 0 then strFejl = " "
if intFejl = 1 then strFejl = "Forkert bruger navn eller kode"
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

.......
.......

<input type="submit" name="Submit" value="OK">
</form>
<br>
<%=strFejl%>
</body>
</html>
Avatar billede ffsoft Praktikant
05. september 2007 - 15:15 #16
Nu bør du lukke spørgsmålet og hvis du har yderligere spørgsmål, bør du oprette dem som nye.
Avatar billede larsen45 Juniormester
20. september 2007 - 18:17 #17
Mange tak
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