Avatar billede madx Nybegynder
15. maj 2012 - 09:54 Der er 5 kommentarer og
1 løsning

Simpel login-funktion (web) - behov for flere logins/brugere

Hej

Jeg har fået oprette en simpel login-funktion i asp, som pt. genkender 1 (én) bruger. Jeg vil gerne have koden modificeret til at jeg kan sætte f.eks. mellem 5 til 10 brugere med eget brugernavn/psw på. Måske der blot kan tilføjes en "eller"-funktion - database vil være at skyde gråspurve

Koden til funktionen ser således ud, mvh. Henrik


<%
'set variables
Dim strCorrectUser
Dim strCorrectPass
Dim strUserName
Dim strPassword

'set correct username and password values
strCorrectUser = "bruger1"
strCorrectPass = "psw1"
'get form values
strUserName = Request.Form("User")
strPassword = Request.Form("Pass")

'validate the user input values with the correct values
If strUserName = strCorrectUser AND strPassword = strCorrectPass Then
Session("IsMember") = True
Else
Session("IsMember") = False
End If
Avatar billede softspot Forsker
15. maj 2012 - 10:17 #1
Prøv dette:

<%
function isValidUser(usr, pass)
  dim i

  ' antag at brugeren er ugyldig
  isValidUser = false

  ' gennemløb listen med brugere og tjek om de angivne
  ' oplysninger stemmer overens med det forventede...
  for i = 0 to ubound(arrCorrectUser)
    ' tjek om brugernavnet er gyldigt
    if arrCorrectUser(i) = usr then
      ' tjek om kodeordet er gyldigt til denne bruger
      if arrCorrectPass(i) = pass then
        isValidUser = true
      end if
    end if
  next
end function

'set variables
Dim arrCorrectUser, arrCorrectPass
Dim strCorrectUser, strCorrectPass
Dim strUserName, strPassword

'set correct username and password values
arrCorrectUser = array("bruger1", "bruger2", "bruger3")
arrCorrectPass = array("psw1", "psw2", "psw3")

'get form values
strUserName = Request.Form("User") & ""
strPassword = Request.Form("Pass") & ""

'validate the user input values with the correct values
Session("IsMember") = isValidUser(strUserName, strPassword)
Avatar billede madx Nybegynder
16. maj 2012 - 10:40 #2
Takker....

Jeg får ingen fejl, men omvendt så bliver jeg logget ind uanset om jeg skriver noget i inputfelterne eller ej. Har prøvet i chrome og firefox, hvor firefox.

Måske det skyldes at funktionen ikke ved, hvad den skal gøre hvis brugeren ikke indtaster eller indtaster noget andet.

Jeg kan se at jeg overså den lille kodestump, som i den gamle kode håndterer hvis brugeren ikke er valid og returnerer bruger til error.asp. Jeg vedlægger lige opdateret inkl. de sidste linier


<%
'set variables
Dim strCorrectUser
Dim strCorrectPass
Dim strUserName
Dim strPassword

'set correct username and password values
strCorrectUser = "jette@production.aau.dk"
strCorrectPass = "sortbruun"
'get form values
strUserName = Request.Form("User")
strPassword = Request.Form("Pass")

'validate the user input values with the correct values
If strUserName = strCorrectUser AND strPassword = strCorrectPass Then
Session("IsMember") = True
Else
Session("IsMember") = False
End If

'If username and password are provided correctly
'then allow him/her to enter the protected page
'else, send him to the error page
If Session("IsMember") <> True Then
Response.Redirect("error.asp")
End If
%>
Avatar billede softspot Forsker
16. maj 2012 - 10:57 #3
Har du prøve at at smide det kode der manglede i det oprindelige, ind efter det jeg foreslog? Det er jo ret essentielt at der bliver omdirigeret, hvis Session("IsMember") ikke er sat til True...
Avatar billede madx Nybegynder
23. maj 2012 - 10:36 #4
Sorry med forsinket opfølgning, men har måtte holde sengen nogle dage med halsbetændelse...

Fik smidt den sidste stump kode på og det virker smukt. 1000tak for hjælpen :)
Avatar billede madx Nybegynder
23. maj 2012 - 10:37 #5
Sæt lige dig selv på med et svar
Avatar billede softspot Forsker
23. maj 2012 - 10:47 #6
Velbekomme :-)
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

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