07. juni 2004 - 14:15Der er
9 kommentarer og 2 løsninger
Problemer med login
Hej Eksperter
Jeg ved ikke om dette ? måske hører til under Access !! Men jeg oplever kun problemet med ASP
Jeg har et medlemsite hvor medlemmerne logger ind via et opslag i på brugerID og password i en database. Siderne bliver niveau opdelt vha. af en include-sikkerhedsfil som angiver niveauet for siden.
Problemet: Jeg har 3 brugere: person A, person B og person C. Person A har niveau 10 (topniveau, adgang til alt) Person B har niveau 2 Person C har niveau 1 Alle 3 personer har samme fornavn. Person C er tilføjet sidst. Når person A logger på, får person A kun adgang til det niveau som den seneste tilføjet person har, altså niveau 1.
Problemet er det samme på andre felter med dubletter.
Herunder lidt kode fra loginscriptet: >>>>>>>> KODE START ... strUID = Trim(Replace(Request.Form("ID"),"'","")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'","")) If Len(strUID) < 1 Or Len(strPWD) < 1 Then Response.Redirect("missing.asp") Else Set rs = Server.CreateObject("ADODB.Recordset") sqlFil = "SELECT Navn, Navn, Niveau FROM Person Where ID = '"& strUID &"' AND Password = '"& strPWD &"'" rs.Open sqlFil, strDSN, 3, 2, 1 ... <<<<< KODE SLUT
Kode fra en af sikkerhedsfilerne:
>>>>>>>> KODE START ... <% If Session("pniveau") < 10 Then%> <script language='JavaScript'>{ alert('access denied'); window.location='index2.asp'; } </script> <% End If %> ... <<<<<<<< KODE SLUT
Hvorfor får de enkelte personer ikke det niveau som de har i databasen (det er dobbelttjekket af mig og andre at de har de rigtige niveau i DB'en) Når de er logget på kan man godt få de øvrige af deres unikke felter frem, men ikke ved login??
Hvis du med brugernavn mener det der tastes ind sammen med password, så nej. Navn er dered fornavn, og ID er deres unikke medlemsnr, og derfor det der benyttes som "brugernavn" her kaldet ID
Okay. Jeg er med. Hvad kommer der efter?: Set rs = Server.CreateObject("ADODB.Recordset") sqlFil = "SELECT Navn, Navn, Niveau FROM Person Where ID = '"& strUID &"' AND Password = '"& strPWD &"'" rs.Open sqlFil, strDSN, 3, 2, 1
prøv at lave en side hvor du udskriver Session("NIVEAU"), så kan du se om Session("NIVEAU") passer til det der står i databasen.
du kan også prøve at checke om de har det rigtige niveau sådan her, ved at lave session("pniveau") om til tal: <% If cint(Session("pniveau")) < cint(10) Then%> <script language='JavaScript'>{ alert('access denied'); window.location='index2.asp'; } </script> <% End If %>
Jeg har lige prøvet det du anbefaler nielsmo, og jeg kan se at person A har niveau 10, men stadig ikke adgang til det som niveau 10 ellers giver adgang til. Hvis jeg tilføjer et 1-tal til navnet får person A den rigtige adgang, men ikke uden 1-tallet
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.