Avatar billede marie14 Nybegynder
06. januar 2005 - 08:21 Der er 58 kommentarer og
1 løsning

Password på alle sider

Hvordan sørger jeg for, at folk ikke kan komme uden om min login side ved, at skrive hele stivejen til en fil?
Mvh. Marie
Avatar billede fennec Nybegynder
06. januar 2005 - 08:23 #1
Hvordan gemmer du login oplysningerne??

Hvis du bruger session kan du bruge følgende kode i toppen af dine sider:

if session("userLogin") = "" then
  response.write "Du har ikke adgang til siden.."
  response.end
end if
Avatar billede marie14 Nybegynder
06. januar 2005 - 08:45 #2
Hvad mener du med hvordan jeg gemmer dem?
Avatar billede fennec Nybegynder
06. januar 2005 - 08:55 #3
Du har vel en loginside hvor en bruger kan indtaste sine oplysninger, også logge ind. Det tjekker du måske op mod en database hvor login oplysningerne ligger i. Hvis brugeren bliver genkendt i databasen bliver han/hun logget ind. Er det ikke noget i den stil du gør??

... eller tænker du på billedfiler, pdf og lign???
Avatar billede marie14 Nybegynder
06. januar 2005 - 09:03 #4
Ja, jeg har en login side med 2 passwords. Der er ingen database.
Avatar billede fennec Nybegynder
06. januar 2005 - 09:15 #5
Så sætter du en session når man logger ind. Noget i denne stil:

if loginOK then
  session("userLogin") = "OK"
  response.redirect("enAndenSide.asp")
else
  response.write "Forkert brugernavn eller password"
end if

I toppe af alle andre sider skriver du så:

if session("userLogin") <> "OK" then
  response.write "Du har ikke adgang til siden.."
  response.end
end if
Avatar billede marie14 Nybegynder
06. januar 2005 - 09:25 #6
Siden bliver vist alligevel og man kan se scriptet.
Avatar billede fennec Nybegynder
06. januar 2005 - 09:27 #7
Så står det sikkert ikke i en ASP block.

<%
if session("userLogin") <> "OK" then
  response.write "Du har ikke adgang til siden.."
  response.end
end if
%>
Avatar billede marie14 Nybegynder
06. januar 2005 - 09:43 #8
Nu virker det for godt. Jeg har skrevet sådan her:
<%
if session("userLogin") <> "OK" then
  response.redirect "login.asp"
  response.end
end if
%>
men den redirecter selvom man er logget på.
Avatar billede fennec Nybegynder
06. januar 2005 - 10:12 #9
Kan du ikke lige vise din kode fra loginsiden (slør evt username/password i koden så vi ikke kan se det)
Avatar billede marie14 Nybegynder
06. januar 2005 - 10:38 #10
Den ser ud noget i denne retning:
<%

Session("BlnAdministrator")=false
'set the username and password
sUsername="username"
sPassword="password"
sUsername2="username"
sPassword2="password"

%>

<form name="formular" action="./page.asp" method="post">
    <input type="hidden" name="opl">
</form>
<div align="center">
  <p>
    <%
If Request.Form<>"" Then
If Request.form("checkbox") ="1" Then
Response.Cookies("UsernameCookie") = Request.Form("txtUsername")
Response.Cookies("PasswordCookie") = Request.Form("txtPassword")
Response.Cookies("RememberMeCookie") = "1"
Response.Cookies("UsernameCookie").expires = Now() + 60
Response.Cookies("PasswordCookie").expires = Now() + 60
Response.Cookies("RememberMeCookie").expires = Now() + 60

Response.Cookies("UsernameCookie2") = Request.Form("txtUsername")
Response.Cookies("PasswordCookie2") = Request.Form("txtPassword")
Response.Cookies("RememberMeCookie2") = "1"
Response.Cookies("UsernameCookie2").expires = Now() + 60
Response.Cookies("PasswordCookie2").expires = Now() + 60
Response.Cookies("RememberMeCookie2").expires = Now() + 60
Else
Response.Cookies("RememberMeCookie") = ""
Response.Cookies("UsernameCookie") = ""
Response.Cookies("PasswordCookie") = ""
Response.Cookies("RememberMeCookie2") = ""
Response.Cookies("UsernameCookie2") = ""
Response.Cookies("PasswordCookie2") = ""
End If
CheckLoginForm
Else
ShowLoginForm
End If

Sub ShowLoginForm
%>
</p>
  <p>&nbsp;    </p>
  <p><br>
  </p>
  <form name="form1" action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">
                          <input name="checkbox" type="checkbox" id="checkbox" value="1" <% If Request.Cookies("RememberMeCookie") = "1" Then
Response.Write "CHECKED"
Else
Response.Write ""
End If %>>

           
End Sub

Sub CheckLoginForm
txtUsername=Request.Form("txtUsername")
txtPassword=Request.Form("txtPassword")
txtUsername2=Request.Form("txtUsername")
txtPassword2=Request.Form("txtPassword")

If InStr(1,txtUsername,"'",1) > 0 and InStr(1,txtPassword,"'",1) > 0 then
    response.redirect "page.asp"
Else
If txtUsername = sUsername AND txtPassword = sPassword Then
   
    Session("username") = True
   
    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("A") = True
    Response.Redirect "Page1.asp" 'set page you want to direct to on successful login
Else

ShowLoginForm
Response.Redirect "Page.asp"
End If
End If
End Sub
%>
</div>
</body>
</html>
Avatar billede fennec Nybegynder
06. januar 2005 - 10:51 #11
Du sætter Session("username") = True, så det er den du skal bruge:

<%
if session("username") = true then
  response.redirect "login.asp"
  response.end
end if
%>
Avatar billede marie14 Nybegynder
06. januar 2005 - 11:11 #12
Hvis jeg skriver det, kan man komme ind selvom man ikke er logget på.
Avatar billede fennec Nybegynder
06. januar 2005 - 11:14 #13
Det burde man da ikke. Prøv at ændre det til:

if session("username")&"" = "true" then
Avatar billede marie14 Nybegynder
06. januar 2005 - 12:24 #14
Jeg ved ikke hvad der er galt men ligegyldig hvad jeg gør virker den enten for alle eller ingen
Avatar billede fennec Nybegynder
06. januar 2005 - 12:37 #15
Husker du at lukke din browser ned? Ellers kan session godt overleve, hvorfor du måske får adgang til filerne selv om du ikke skulle.
Avatar billede marie14 Nybegynder
06. januar 2005 - 12:51 #16
Det hjælper ikke...
Avatar billede marie14 Nybegynder
06. januar 2005 - 12:54 #17
Den vil godt skrive sætningen: "Du har ikke adgang til siden.."
Men den vil ikke variere den.
Avatar billede fennec Nybegynder
06. januar 2005 - 13:07 #18
... Hvad mener du med "variere den"??
Avatar billede marie14 Nybegynder
06. januar 2005 - 13:08 #19
DEn burde jo forsvinde når man er logget på..
Avatar billede fennec Nybegynder
06. januar 2005 - 13:12 #20
Den tekst skulle slet ikke være der, hvis du bruger:

<%
if session("username")&"" = "true" then
  response.redirect "login.asp"
  response.end
end if
%>

Denne kode har du ikke til at stå på "login.asp" siden også, for det skal den ikke...
Avatar billede marie14 Nybegynder
06. januar 2005 - 13:14 #21
Jeg har brugt det til nogle af testene
Avatar billede fennec Nybegynder
06. januar 2005 - 13:17 #22
Det er mig der er et fjols :o)
Det skal selvfølgelig være:

if session("username")&"" <> "true" then
Avatar billede marie14 Nybegynder
06. januar 2005 - 13:24 #23
Nu vil den slet ikke vise siden..
Kan vi vende tilbage til det i morgen?
Avatar billede fennec Nybegynder
06. januar 2005 - 13:29 #24
Du melder bare tilbage, når du er klar.
Men jeg fatter ikke hvorfor det ikke virker. Det burde det...
Avatar billede marie14 Nybegynder
07. januar 2005 - 09:00 #25
Godmorgen. Jeg er klar. Kan det skyldes fejl i min login side?
Avatar billede fennec Nybegynder
07. januar 2005 - 09:09 #26
Det kunne det godt. Vi skal ihvertfald have tjekket hvilke session der bliver sat, og hvilken værdi de har. Jeg kan se 3 session, der bliver sat, så dem skal du lige prøve at udskrive på login siden inden du logger ind, altså der hvor du har indtastningsfelterne (i "Sub ShowLoginForm" delen), og på den side man bliver redirectet til efter login (page1 og page2)

response.write "User: "& Session("username") &"<br>"
response.write "A: "& Session("A") &"<br>"
response.write "BlnA: "& Session("BlnAdministrator") &"<br>"
Avatar billede marie14 Nybegynder
07. januar 2005 - 09:13 #27
Jeg er ikke helt med på hvad du mener...
Avatar billede fennec Nybegynder
07. januar 2005 - 09:16 #28
...
Sub ShowLoginForm
response.write "User: "& Session("username") &"<br>"
response.write "A: "& Session("A") &"<br>"
response.write "BlnA: "& Session("BlnAdministrator") &"<br>"%>
</p>
  <p>&nbsp;    </p>
  <p><br>
...
...

Også skal du bare fortælle mig hvilken værdi (måske ingenting) der står ud for hver af dem.
Avatar billede marie14 Nybegynder
07. januar 2005 - 10:17 #29
Jeg er stadig ikke rigtig med..
men jeg faldt over denne her jeg har prøvet den giver det samme resultat. Den nægter en adgang selvom man er logget på.
<%
MM_authorizedUsers="Username;Password"
MM_authorizedUsers="Username;Password"
MM_authFailedURL="/login.asp"
MM_grantAccess=false
If Session("MM_Username") <> "" Then
  If (false Or CStr(Session("MM_UserAuthorization"))="") Or _
        (InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
    MM_grantAccess = true
  End If
End If
If Not MM_grantAccess Then
  MM_qsChar = "?"
  If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
  MM_referrer = Request.ServerVariables("URL")
  if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
  MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
  Response.Redirect(MM_authFailedURL)
End If
%>
Avatar billede fennec Nybegynder
07. januar 2005 - 10:24 #30
Bare smid de 3 linjer med response.write ind på login.asp siden lige efter "Sub ShowLoginForm". Når du så skal logge ind, og skal til at indtaste brugernavn og password, skulle de 3 linjer gerne blive skrevet ud på skærmen....
Avatar billede marie14 Nybegynder
07. januar 2005 - 10:28 #31
Det står ingenting.
Avatar billede fennec Nybegynder
07. januar 2005 - 10:34 #32
Fint nok. Det skulle der nemlig helst ikke. Så smid de samme 3 linjer ind i toppen på dine andre sider, og prøv så at logge ind. Hvilken værdi har de så her???
Avatar billede marie14 Nybegynder
07. januar 2005 - 10:34 #33
Jeg mener selvfølgelig DER står ingenting..
Avatar billede marie14 Nybegynder
07. januar 2005 - 10:39 #34
Den skriver bare de 3 linjer.
Avatar billede fennec Nybegynder
07. januar 2005 - 10:58 #35
Hvis der ikke står nogen værdi, bliver der ikke sat en session. Vi skal derfor til at kikke på "Sub CheckLoginForm" for at finde problemet. Du skal lige smide 2 linjer ind efter "Sub CheckLoginForm" også prøve at logge ind igen:

Sub CheckLoginForm
response.write "Hvis du kom hertil er alt godt indtil vidre, og vi kan fortsætte testen!!"
response.end
...
...
Avatar billede marie14 Nybegynder
07. januar 2005 - 11:13 #36
Den viser ingenting.
Avatar billede marie14 Nybegynder
07. januar 2005 - 11:15 #37
Jo,da jeg loggede på kom teksten frem
Avatar billede fennec Nybegynder
07. januar 2005 - 11:19 #38
Fint nok. Så flyt de to linjer 8 linjer ned til lige efter "else", og prøv så at logge på igen. Så skulle den gerne komme frem igen:

If InStr(1,txtUsername,"'",1) > 0 and InStr(1,txtPassword,"'",1) > 0 then
    response.redirect "page.asp"
Else
response.write "Hvis du kom hertil er alt godt indtil vidre, og vi kan fortsætte testen!!"
response.end
Avatar billede marie14 Nybegynder
07. januar 2005 - 11:30 #39
Det fungerede også fint.
Avatar billede fennec Nybegynder
07. januar 2005 - 11:36 #40
Så skal vi finde ud af hvilken if-sætning vi kommer ind i. Fjern de 2 linjer og tilfør to linjer kode i hver if-blok:

If txtUsername = sUsername AND txtPassword = sPassword Then
    response.write "Den første..."
    response.end
    Session("username") = True
    Session("A") = True
    Response.Redirect "Page2.asp" 'set page you want to direct to on successful login
ElseIf txtUsername2 = sUsername2 AND txtPassword2 = sPassword2 Then
    response.write "Den anden..."
    response.end
    Session("username") = True
    Session("A") = True
    Response.Redirect "Page1.asp" 'set page you want to direct to on successful login
Else
    response.write "Den sidste..."
    response.end
    ...
Avatar billede marie14 Nybegynder
07. januar 2005 - 12:53 #41
Det virker også....(Håber du stadig er her)
Avatar billede fennec Nybegynder
07. januar 2005 - 12:55 #42
Hvad skrev den?? Jeg vil gerne vide hvilken if-blok du kom ind i.
Avatar billede marie14 Nybegynder
07. januar 2005 - 12:58 #43
Den skrev: Den første...
Avatar billede fennec Nybegynder
07. januar 2005 - 13:10 #44
Så bare fjern de linjer igen, og tilføj denne session til første blok:

If txtUsername = sUsername AND txtPassword = sPassword Then
    Session("MinTest") = "Der skal stå dette..."
    Session("username") = True
    Session("A") = True
    Response.Redirect "Page2.asp" 'set page you want to direct to on successful login
ElseIf txtUsername2 = sUsername2 AND txtPassword2 = sPassword2 Then

Og i toppen af "Page2.asp" skriver du:
<%
response.write "MinTest: "& session("MinTest")
%>

Så skulle "MinTest" gerne blive udskrevet der...
Avatar billede marie14 Nybegynder
07. januar 2005 - 13:21 #45
Der står: MinTest: Der skal stå dette...
Avatar billede fennec Nybegynder
07. januar 2005 - 13:27 #46
Så brug lige disse linjer i stedet:

response.write "MinTest: "& session("MinTest") &"<br>"
response.write "User: "& Session("username") &"<br>"
response.write "A: "& Session("A") &"<br>"
response.write "BlnA: "& Session("BlnAdministrator") &"<br>"%
Avatar billede fennec Nybegynder
07. januar 2005 - 13:28 #47
... Der er lige et % tegn på sidste linje som ikke skal være der.
Avatar billede marie14 Nybegynder
07. januar 2005 - 13:36 #48
Mener du i stedet for Response.Redirect?
Avatar billede fennec Nybegynder
07. januar 2005 - 13:38 #49
nope. Der skal bare udskrives 3 linjer mere på "Page2.asp" siden.
Avatar billede marie14 Nybegynder
07. januar 2005 - 13:55 #50
Det kan jeg ikke få til, at virke. Den kommer med denne fejlmelding:
response.write "BlnA: "& Session("BlnAdministrator") &"<br>"%
------------------------------------------------------------^
Avatar billede marie14 Nybegynder
07. januar 2005 - 14:15 #51
Hvis jeg udelukker den sidste sætning skriver den: MinTest
Avatar billede marie14 Nybegynder
10. januar 2005 - 09:05 #52
Kunne vi ikke gøre det færdigt?
Mvh. Marie
Avatar billede fennec Nybegynder
10. januar 2005 - 09:09 #53
Som sagt var der et % tegn i koden som ikke skulle være der:

response.write "MinTest: "& session("MinTest") &"<br>"
response.write "User: "& Session("username") &"<br>"
response.write "A: "& Session("A") &"<br>"
response.write "BlnA: "& Session("BlnAdministrator") &"<br>"
Avatar billede marie14 Nybegynder
10. januar 2005 - 09:23 #54
Hej igen.
Når jeg prøver det siger siden MinTest.
Avatar billede fennec Nybegynder
10. januar 2005 - 09:32 #55
Der skal som minimum stå:

MinTest:
User:
A:
BlnA:

Ellers er vi ikke på den rigtige side (evt. pga en redirect). Prøv lige at højreklikke i browseren, og vælg "Egenskaber", så skulle du gerne få den rigtige addresse(URL)
Avatar billede marie14 Nybegynder
10. januar 2005 - 09:37 #56
Du havde ret med hensyn til redirect. Den er fjernet. Nu står der:
MinTest:
User:
A:
BlnA: False
Avatar billede marie14 Nybegynder
10. januar 2005 - 13:22 #57
Dette virker:
<%
if Session("BlnAdministrator") = false  then
  response.redirect "page.asp"
  response.end
end if
%>
Da du har hjulpet mig i timevis, må du hellere end gerne få pointene.
Mvh. Marie
Avatar billede fennec Nybegynder
10. januar 2005 - 13:33 #58
Så siger jeg da tak. Men jeg kunne nu godt tænke mig at finde ud af hvorfor de andre sessions ikke bliver husket, men det bliver næppe muligt, da jeg så skal se alt kode, samt nok have adgang til serveren, og det er vist for omfattende :o)
Avatar billede marie14 Nybegynder
10. januar 2005 - 13:39 #59
Der var 2 ting galt den ene var, at der var lavet om på funktionen d.v.s. at der lå en "gammel" session på Page2.asp
Den anden var disse linjer:
      'Session("Selve passwordet") = True (blev ændret til denne sætning:)
    Session("Password") = sPassword
Håber du forstår hvad jeg mener.
Mvh. Marie
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