Avatar billede marie14 Nybegynder
11. januar 2005 - 11:49 Der er 34 kommentarer

Session der udelukker en af to brugere

Jeg har denne session på mine sider
(<%
if Session("BlnAdministrator")=false then
  response.redirect "minside.asp"
  response.end
end if
%>)
der forhindrer adgang til siderne medmindre man er logget på. Der er herefter 2 forskellige passwords der har adgang til alle siderne, men nogle af siderne skal være lukket for den ene bruger og omvendt, hvordan skal den session se ud?
mvh. Marie
Avatar billede a1a1 Novice
11. januar 2005 - 12:00 #1
det er ikke nok at have en true / false

du kan evt. give sessionen et nummer (1 og 2), i stedet for true/false og på de pågældende sider checke om det er bruger et eller to

sider begge administrerer bruger du
<%
if Session("BlnAdministrator") <> "" then
  response.redirect "minside.asp"
  response.end
end if
%>

;o)
Avatar billede fennec Nybegynder
11. januar 2005 - 12:01 #2
Du skal have gemt en session til, når du logger ind. Nu kan jeg ikke helt huske din kode, men den session skal være forskellig for hver bruger.

if (bruger1) then
  session("BlnAdministrator") = true
  session("BrugerID") = 1
elseif (bruger1) then
  session("BlnAdministrator") = true
  session("BrugerID") = 2
else
  'Forkert password/bruger
  respnse.redirect("minside.asp")
end if


Tjekket på siderne skal så have et ekstra sessiontjek. Her er det kun bruger 2 der har adgang:
<%
if Session("BlnAdministrator")=false then
  response.redirect "minside.asp"
  response.end
end if
'Kun Bruger2 skal have adgang til denne side
if Session("BrugerID")<>2 then
  response.redirect "minside.asp"
  response.end
end if
%>

Nu havde du jo godt nok nogle problemer med session, men det håber jeg ikke gentager sig.
Avatar billede marie14 Nybegynder
11. januar 2005 - 12:34 #3
Hej igen fennec
Jeg gav dig noget af grunden til hvorfor det ikke fungerede i det sidste spørgsmål.
Der lå b.l.a. en gammel session på den side brugeren skulle ind.
Avatar billede marie14 Nybegynder
11. januar 2005 - 13:34 #4
Mine sessions ser sådan her ud:
Session("Password") = sPassword
Session("Password") = sPassword2
Avatar billede fennec Nybegynder
11. januar 2005 - 13:41 #5
Jeg vil ikke anbefale at du gemme password'et i en session, det er en potientiel sikkerheds risiko.

Virker mit eks ikke (fra post 12:01:40). Hvor du tilføjer en session på login siden?? Var det session problem ikke blevet løst??
Avatar billede marie14 Nybegynder
11. januar 2005 - 14:35 #6
Der står ikke selve passwordet og nej jeg kunne ikke få tiløjelsen til, at virke.
Avatar billede marie14 Nybegynder
11. januar 2005 - 14:36 #7
Tilføjelsen.
Avatar billede fennec Nybegynder
11. januar 2005 - 14:39 #8
Hvad indeholder "sPassword" og "sPassword2" så?? for så kan du måske bruge det til at sammenligne på...
Avatar billede marie14 Nybegynder
11. januar 2005 - 14:56 #9
Jeg får det til, at det skulle se sådan ud, men det virker ikke:
<%
if Session("BlnAdministrator")=false then
  response.redirect minside.asp"
  response.end
end if
if Session("Password")<>sPassword2 then
  response.redirect minside.asp"
  response.end
end if
%>
Avatar billede fennec Nybegynder
11. januar 2005 - 15:00 #10
nej, for sPassword2 er en variabel på login.asp siden. Så den kan ikke bruges på de andre sider, uden at blive oprettet her også.

Hvad indeholder Session("Password"), hvis du skriver den ud?? Den skal nok udskrives før session tjekket:

response.write "Session Pass: "& Session("Password")
response.end
Avatar billede marie14 Nybegynder
11. januar 2005 - 15:22 #11
Session Pass: Et password jeg ikke kan oplyse her
Avatar billede fennec Nybegynder
11. januar 2005 - 15:38 #12
Så bliver passwordet altså gemt i session("Password"). Vi bliver simpelthen nød til at få din loginkode til at virke. Det skal altså være sådan (tilføjet session("UserNR") = xx):

If txtUsername = sUsername AND txtPassword = sPassword Then
    Session("username") = True
    Session("UserNR") = 1
    Session("A") = True
    Response.Redirect "Page2.asp" 'set page you want to direct to on successful login
ElseIf txtUsername2 = sUsername2 AND txtPassword2 = sPassword2 Then
    Session("username") = True
    Session("UserNR") = 2
    Session("A") = True
    Response.Redirect "Page1.asp" 'set page you want to direct to on successful login
Else
...
end if

Kan du så ikke lige smide hele koden fra page2.asp herind.
Avatar billede marie14 Nybegynder
11. januar 2005 - 17:32 #13
page2.asp med problemet, at gøre. Jeg har fjernet den session, der var der. Den første del virker jo. Der hvor man udelukker alle brugere.
Avatar billede fennec Nybegynder
12. januar 2005 - 08:24 #14
Problemet er at vi skal have den til at huske de andre sessions også (username, UserNR, A), og det lader til at den ikke vil det. Jeg tror derfor at der er noget kode på page2.asp, som forhindre dette. Men vi kan jo prøve dette først:

Hvis du har tilføjet de to Session("UserNR") = xx, skal du kunne udskrive dem på alle andre sider. I stedet for at udskrive Session("Password"), som vi gjorde lige før, så prøv at udskrive "UserNR":

response.write "Session UserNr: "& Session("UserNR")
response.end

Der SKAL stå 1 eller 2, hvis du prøver at logge på igen, og session er blevet tilføjet til logon scriptet, som vist i min tidligere post.
Avatar billede marie14 Nybegynder
12. januar 2005 - 09:05 #15
Hvis jeg bare henter page2.asp frem står der Session UserNr: 1, men hvis jeg prøver via login siden vil den ikke hente page2.asp frem.
Avatar billede marie14 Nybegynder
12. januar 2005 - 09:17 #16
Det var mig, der havde skrevet forkert, sorry.
Der står: Session UserNr: 1
Avatar billede fennec Nybegynder
12. januar 2005 - 09:20 #17
Hvis du så logger på som bruger 2, burde du komme til "page1.asp". Hvis du så udskriver "UserNr" her skulle den gerne være 2. Prøv lige det....
Avatar billede marie14 Nybegynder
12. januar 2005 - 09:29 #18
Jep...Den skriver: Session UserNr: 2
Avatar billede fennec Nybegynder
12. januar 2005 - 09:34 #19
Kanon. Så kan du bruge denne tjek kode (her er det kun bruger 2 der har adgang):

if Session("BlnAdministrator")=false then
  response.redirect "minside.asp"
  response.end
end if
'Kun Bruger2 skal have adgang til denne side
if Session("UserNr") <> 2 then
  response.redirect "minside.asp"
  response.end
end if
Avatar billede marie14 Nybegynder
12. januar 2005 - 09:46 #20
Det ser ud til, at virke. jeg tester det igennem og vender tilbage lidt senere,ok?
Avatar billede marie14 Nybegynder
12. januar 2005 - 11:11 #21
Nej, jeg kan ikke få det til, at virke når jeg sætter begge if ind.
Avatar billede fennec Nybegynder
12. januar 2005 - 11:26 #22
hvad så hvis du kun har "if Session("UserNr") <> 2 then" delen...
Avatar billede marie14 Nybegynder
12. januar 2005 - 11:34 #23
Det virker heller ikke..
Avatar billede marie14 Nybegynder
12. januar 2005 - 11:35 #24
Kommer tilbage efter frokost, håber du hænger på..
Avatar billede fennec Nybegynder
12. januar 2005 - 11:36 #25
Hvilken værdi har Session("UserNr") nu, hvis du prøver et udskrive den, som vi gjorde tidligere???
Avatar billede marie14 Nybegynder
12. januar 2005 - 12:11 #26
Session UserNr: 1
Avatar billede fennec Nybegynder
12. januar 2005 - 12:37 #27
Nu er du logget ind som bruger 1, hvilket betyder at du ikke har tilladelse til den side. Jeg har ændret tjekket lidt, så behøver vi ikke tjekke på "BlnAdministrator". Du skal bare vælge den der skal bruges på den specifikke side:

'Begge (alle der er logget ind) skal have adgang.
if Session("UserNr") <> "" then
  response.redirect "minside.asp"
  response.end
end if

'Kun Bruger 1 skal have adgang.
if Session("UserNr") <> 1 then
  response.redirect "minside.asp"
  response.end
end if

'Kun Bruger 2 skal have adgang.
if Session("UserNr") <> 2 then
  response.redirect "minside.asp"
  response.end
end if
Avatar billede marie14 Nybegynder
12. januar 2005 - 12:48 #28
Det virker ikke.
Jeg kan åbenbart ikke lave det om til en redirect.
Avatar billede fennec Nybegynder
12. januar 2005 - 12:58 #29
Bliver du ikke redirectet til "minside.asp", hvis du ikke har tilladelse til at se siden??
Avatar billede marie14 Nybegynder
12. januar 2005 - 13:07 #30
Jo, mem det bliver jeg også selvom jeg har tilladelse til, at se siden.
Avatar billede fennec Nybegynder
12. januar 2005 - 13:55 #31
Prøv at skrive det sådan her i stedet. Der er nemlig forskeld på 1 og "1":

if Session("UserNr")&"" <> "1" then
Avatar billede marie14 Nybegynder
12. januar 2005 - 14:58 #32
Da jeg lige nu er total skaldet (jeg har revet al håret af i fortvivlelse :-) )
Har jeg brugt denne der til gengæld ikke giver så meget sikkerhed fordi passwordet står på den enkelte side Jeg har disse tre linjer:
Session("Det rigtige password") = True
Session("Det rigtige password2") = True
Session("BlnAdministrator") = True

På siden skriver jeg så enten:

<%
    If Session("Det rigtige password")<>True Then Response.Redirect minside.asp"
%>
Eller
<%
    If Session("Det rigtige password2")<>True Then Response.Redirect minside.asp"
%>

Eller hvis begge har adgang:
<%
    If Session("BlnAdministrator")<>True Then Response.Redirect minside.asp"
%>

Det ser (7-9-13) ud til, at virke
Avatar billede fennec Nybegynder
12. januar 2005 - 15:08 #33
Jeg har heller ikke så meget hår tilbage :o)
Men hvis det virker sådan der, så må det vel være den kode du bruger.
Avatar billede marie14 Nybegynder
12. januar 2005 - 15:13 #34
:-) Jeg har testet det en del igennem og det virker stadig..
Tror du der er noget jeg på en simpel måde kan sætte i stedet for Det rigtige password (Det er i øvrigt brugernavnet) uden, at ændre for miget i resten af indholdet?
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