Avatar billede marie14 Nybegynder
09. december 2004 - 13:03 Der er 20 kommentarer

2 passwords

Er der nogen der har et bud på dette problem? Jeg har en login side med 2 passwords, begge brugere kommer ind på den samme side, der er herefter en genvejsknap til den anden del af sitet, som den ene bruger ikke kan komme videre på. Jeg har et site der er delt op i frames, med navigationsbaren i en frame. Det jeg vil have fremover er, at den ene bruger slet ikke kan se det link de ikke kan bruge. Mvh. Marie
Avatar billede thesurfer Nybegynder
09. december 2004 - 13:10 #1
Brug Sessions og en database.
I databasen har du brugernavn og password, samt hvilke links de må kunne se.

Når vedkommende logger ind, lægger du linksne i en session, som du så tester hver gang linksne skal/skal ikke vises.

Se Sessions: http://www.html.dk/tutorials/asp/lektion12.asp
Eller cookies: http://www.html.dk/tutorials/asp/lektion13.asp

Eksempel:

<a href="normal1.asp">Normal side 1</a>

<%

if instr(Session("sider"),"http://www.server.dk/speciel.asp") then
%>
<br>
<a href="speciel.asp">Speciel side</a>

<% end if %>

<br>
<a href="normal2.asp">Normal side 2</a>
Avatar billede thesurfer Nybegynder
09. december 2004 - 13:16 #2
PS: Der står mange gode ting på http://www.html.dk/tutorials/asp/ .. bl.a. brugen af en Access database..
Avatar billede marie14 Nybegynder
09. december 2004 - 13:19 #3
Nu har jeg jo kun 2 passwords? Skal jeg lægge dem i en database? Folk vælger ikke selv password.
Avatar billede thesurfer Nybegynder
09. december 2004 - 13:27 #4
Hvis det er 2 password, og kun 2 passwords der ikke kan laves om, kan du enten hardcode dem (skrive dem direkte i filerne) eller bruge en txt/asp fil.

Txt/asp fil kræver adgang til FileSystemObject, hvilket normalt er deaktiveret/slået fra pga sikkerhedsrisiko.
Test med: http://frip.dk/thesurfer/objtest.asp

Hvad skriver den til dig?
Avatar billede marie14 Nybegynder
09. december 2004 - 13:28 #5
Scripting.FileSystemObject not full supported.
Creating of files not supported...
Deleting and Modifying of files not supported...
Avatar billede thesurfer Nybegynder
09. december 2004 - 13:33 #6
Det betyder at du godt kan læse filer, men kan *ikke* oprette filer eller skrive til eksisterende filer.

Så du burde kunne bruge txt metoden. Dog ville jeg nok bruge en ASP fil, og indsættes password (o.lign.) som kommentar, så man ikke bare kan skrive filnavnet og få fat på dem.

Tænker lige over et eksempel.. og ser om jeg har tid til at lave et fungerer eksempel..
Avatar billede marie14 Nybegynder
09. december 2004 - 13:35 #7
Det ville være skønt... :-)
Avatar billede thesurfer Nybegynder
09. december 2004 - 14:41 #8
..jeg kom lige i tanke om noget...
Har man et brugernavn, eller kun en kode?
Avatar billede marie14 Nybegynder
09. december 2004 - 14:42 #9
Begge dele.
Avatar billede thesurfer Nybegynder
09. december 2004 - 14:43 #10
Fint.. så skal jeg ikke starte om :-)
Arbejdede nemlig på en brugernavn+kodeord del..
Avatar billede marie14 Nybegynder
09. december 2004 - 14:44 #11
Det vil sige, at der er 2 brugernavne og 2 passwords.
Avatar billede thesurfer Nybegynder
09. december 2004 - 14:57 #12
yeps.. :-)

Det blev et lidt større projekt, end jeg havde regnet med.. men har et fungerende eksempel om et minutter.
Avatar billede thesurfer Nybegynder
09. december 2004 - 14:57 #13
*et par minutter

Der er noget galt med mit keyboard :-)
Avatar billede thesurfer Nybegynder
09. december 2004 - 14:58 #14
Skal jeg skriv en masse kommetarer, til hvordan det virker? (tager lidt længere tid..(
Avatar billede marie14 Nybegynder
09. december 2004 - 15:09 #15
Jeg ønsker selvfølgelig ikke, at være til stor besvær.
Jeg vender tilbage i morgen.
Mvh: Marie
Avatar billede thesurfer Nybegynder
09. december 2004 - 15:56 #16
Info:
- Denne liste med filer (og deres indhold) er automatisk genereret, 09-12-2004 15:54:29
- TABS er erstattet af 2x mellemrum.
- Indholdet/outputtet kan også ses på: http://frip.dk/thesurfer/e/q/569422/


*** Filnavn: menu.asp, indhold:

<!--

Dette er en test menu, så man kan gå direkte til siderne.

Den inkluderes på alle siderne.

-->

<a href="login.asp">Login</a>
- <a href="logout.asp">Logout</a>
- <a href="links.asp">Links</a>
<br><br>



*** Filnavn: index.asp, indhold:

<!-- #include file="menu.asp" -->

Jeg plejer at bruge index.asp som start fil. Så kan jeg referere til den, når man skal til "forsiden".



*** Filnavn: login.asp, indhold:

<%
Option Explicit
' Option Explicit tvinger os til at definere vores variabler,
' og gør det nemmere at fange stavefejl
%>

<!-- #include file="menu.asp" -->


<!-- formen: -->
<form method="post">
Brugernavn: <input type="text" name="brugernavn" value="">
<br>
Kodeord: <input type="password" name="kodeord" value="">
<br>
<input type="submit" name="submit" value="Send">
</form>

<%
'  der skal postes, før vi arbejder med data:
if request.servervariables("request_method") = "POST" then
  ' definer de variabler vi skal bruge:

  dim FSO, fil, stream, tmp, userpass, brugernavn, kodeord, ExitLoop

  ' vores variabel/switch sættes til false (så vi kan hoppe ud af loopen):
  ExitLoop = false

  brugernavn = request.form("brugernavn") ' brugernavn indsættes i variabelen "brugernavn"
  kodeord = request.form("kodeord") ' kodeord indsættes i variablen "kodeord"

  Set fso = CreateObject("Scripting.FileSystemObject") ' oprettet FileSystemObject (kræves for at læse filer)
  set fil = fso.OpenTextFile(server.mappath("userinfo.asp"), 1) ' henvisning til filen med brugernavn/kodeord

  ' forsætter så længe at vi ikke er nået til slutningen, eller ExitLoop = true (hop ud af loop)
  do while not fil.atEndOfStream and ExitLoop = false

  tmp = fil.ReadLine ' læs 1 linie af gangen
  if left(tmp, 1) = "'" and mid(tmp, 2, 1) <> ";" then
    ' fundet en kommentar der ikke "starter" med ";", dvs brugernavn/kodeord

    ' se om vi har fundet et brugernavn og et kodeorder, der matcher vores data i userinfo.asp
    if mid(tmp, 2, instr(tmp, ",")-2) = brugernavn and mid(tmp, instr(tmp, ",")+1) = kodeord then

      'Alt er OK = Set sessionen:
      Session("login") = brugernavn
      Response.write "Du er nu logget ind. Gå til <a href='index.asp'>forsiden</a>."
      ExitLoop = true ' gør det muligt at hoppe ud af loopen
    end if

  end if

  loop ' loop, sålænge at vore kriterier (slutning + ExitLoop = false) overholdes

  if ExitLoop = false then ' Hvis ExitLoop stadig er false, er brugernavn/kodeord ikke fundet
    Response.write "Brugernavn eller kodeord er forkert."
    session("login") = "" ' nulstil login'et

    ' Grunden til at det er "Brugernavn eller kodeord", og ikke bare "brugernavn" eller "kodeord" er,
    ' for at skjule for brugeren, at han/hun har fundet et rigtigt brugernavn.
  end if

  set fil = nothing ' frigør servervariablen fil = frigør hukommelse
  set fso = nothing ' frigør servervariablen fso = frigør hukommelse

end if
%>



*** Filnavn: logout.asp, indhold:

<%
' nulstil login'et:
session("login") = ""
%>

<!-- #include file="menu.asp" -->

Du er nu logget ud. Gå til <a href="index.asp">forsiden</a>.



*** Filnavn: userinfo.asp, indhold:

<%
'; Information:
'; ------------
'; Linier der IKKE er brugernavn/kodeord linier SKAL "starte" med ";"
';
'; Formatet for brugernavn/kodeord er:
'; Apostrof, brugernavn efterfulgt af af komma og til sidst koderordet (uden mellemrum)
';
'; Eksempel: 'test,123
';
';
'; Her står brugernavn og kodeord:
';
'marie,14
'ole,123
%>



*** Filnavn: links.asp, indhold:

<!-- #include file="menu.asp" -->

<a href="normal1.asp">Normal 1</a> - dette link kan ses af ALLE (selv om man IKKE er logget).

<% if session("login") <> "" then %>
<br><br>
<a href="speciel_alle_logget_ind.asp">Sepeciel Alle</a> - dette link kan KUN ses af dem der ER logget ind.
<% end if %>

<% if session("login") = "maria" then %>
<br><br>
<a href="speciel_marie.asp">Sepeciel marie</a> - dette link kan KUN ses af 'marie'.
<% end if %>

<% if session("login") = "ole" then %>
<br><br>
<a href="speciel_ole.asp">Sepeciel ole</a> - dette link kan KUN ses af 'ole'.
<% end if %>

<br><br>
<a href="normal2.asp">Normal 2</a> - dette link kan ses af ALLE (selv om man IKKE er logget).
Avatar billede thesurfer Nybegynder
09. december 2004 - 20:24 #17
Du skal bare vide, at det her kun fixer linksne.. hvis brugeren selv skriver "speciel_marie.asp", vil han/hun kunne komme ind på siden, uden at være logget ind (eller være logget ind som "ole")..

For at forhindre det, kan du indsætte noget kode i toppen af de specielle dokumenter..

f.eks.:

<% if session("login") <> "marie" then response.redirect "login.asp" %>

Du kan også bruge de andre ting, ligesom i links:
session("login") <> "ole"  ("ole" skal være logget ind)
session("login") = "" (man skal bare være logget ind = fælles speciel side)
osv..
Avatar billede marie14 Nybegynder
10. december 2004 - 10:50 #18
Hejsa
Det var noget af en mundfuld, jeg skal lige prøve det igennem, men jeg synes du har givet mig et svar. Jeg vil gerne give dig point, men må jeg vende tilbage, hvis jeg har flere spørgsmål?
Mvh. Marie
Avatar billede thesurfer Nybegynder
10. december 2004 - 22:05 #19
Jeg lægger lige et svar, så kan du altid lukke spm'et.. du behøver ikke at lukke det endnu..
Avatar billede marie14 Nybegynder
13. december 2004 - 09:16 #20
Det er ok. Tak for hjælpen.
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