/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Login script
Fra : John


Dato : 07-06-03 22:32

Jeg har lige et lille spørgsmål til jer ASP hoveder... Hvordan
kan jeg få sider til at huske at man har logget ind... så man er
fri for at skulle logge ind hele tiden...?

Hilsen John

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Bjarke Walling Peter~ (07-06-2003)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 07-06-03 23:12

John skrev:
> Jeg har lige et lille spørgsmål til jer ASP hoveder... Hvordan
> kan jeg få sider til at huske at man har logget ind... så man er
> fri for at skulle logge ind hele tiden...?

Det gør du vha. sessions. Se f.eks. her:
http://www.asp-faq.dk/article/?id=49

Mvh. Bjarke



Rasmus Christian Kaa~ (08-06-2003)
Kommentar
Fra : Rasmus Christian Kaa~


Dato : 08-06-03 10:44


"Bjarke Walling Petersen" <bwp.news.fjern-dette@bwp.dk> wrote in message
news:bbto04$1cdf$1@news.cybercity.dk...
> John skrev:
> > Jeg har lige et lille spørgsmål til jer ASP hoveder... Hvordan
> > kan jeg få sider til at huske at man har logget ind... så man er
> > fri for at skulle logge ind hele tiden...?
>
> Det gør du vha. sessions. Se f.eks. her:
> http://www.asp-faq.dk/article/?id=49

Mon ikke nærmere der er tale om et "[x] Husk min kode/password" ting (som
kræver cookies!)



Bjarke Walling Peter~ (08-06-2003)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 08-06-03 13:01

Rasmus Christian Kaae skrev:
> Mon ikke nærmere der er tale om et "[x] Husk min kode/password" ting (som
> kræver cookies!)

Jo, det tror jeg faktisk du har ret i. Det havde jeg ikke lige overvejet.


Jeg tror jeg ville tildele hver bruger i databasen en nøgle som f.eks. kunne
laves ved at tage MD5 af et tilfældigt tal - noget lignende:

Randomize Timer
SaveID = MD5(CStr(Rnd))

Brugernavn, Password, SaveID
Bruger1 Pwd1 E3FAD614B6048936A3003191E004F734
Bruger2 Pwd2 48936A30E3FAD614B04F7346003191E0
Bruger3 Pwd3 614B0734603F403191E048936A30EFAD

Denne SaveID er (meget sandsynligt) unik, men det er ikke muligt at regne
noget ud om brugeren fra denne nøgle og det er meget svært at gætte de andre
brugeres SaveID (ellers kunne man jo blot sætte den ind i sine Cookies og så
vil man blive logget ind som vedkommende). Læs mere om bl.a. MD5 her:
http://www.asp-faq.dk/article/?id=52

Hvis brugeren vælger at gemme sit brugernavn og password, sker der følgende
i det script der også logger brugeren ind:

' --- dologin.asp ---

' Har brugeren trykket Husk brugernavn/adgangskode:
If Request.Cookies("login") <> "" Then ' Hvis ja ...

' Log brugeren ind ved at finde indholdet af denne cookie i databasen
' Hvis nøglen ikke bliver fundet så sæt da
' Response.Cookies("login") = "" og send brugeren til login.asp

' Hvis brugeren blev logget ind korrekt:

Response.Redirect Session("LoginGotoURL")

Else ' Brugeren logger ind på normal vis ...

' Her bliver brugeren logget ind på normal vis (sendt fra login.asp)

' Brugernavn og adgangskode er nu accepteret!
' SaveID er hentet fra databasen.

If Request.Form("save") Then ' Vil brugeren huske brugernavn/adgangskode
' Her gemme vi vores hemmelige nøgle SaveID på brugerens computer:
Response.Cookies("login").Domain = "www.domain.dk" ' Domænenavn
Response.Cookies("login").Expires = Now + 60 ' Udløber om 60 dage
Response.Cookies("login").Path = "/" ' Stien til login-scriptet
Response.Cookies("login").Secure = False ' True virker kun med SSL
Response.Cookies("login") = SaveID ' Gem SaveID
Else
Response.Cookies("login") = ""
End If
End If


' --- login.asp ---

' Hvis Husk navn/kode er slået til - så log ind automatisk:
If Request.Cookies("login") <> "" Then
Session("LoginGotoURL") = "/"
Response.Redirect "dologin.asp"
End If

' Normalt login-script følger her ...


' --- alle beskyttede sider med brugernavn/adgangskode ---

' Er brugeren logget ind?
If Session("loginok") <> True Then ' Hvis nej ...
' Check auto-login:
If Request.Cookies("login") <> "" Then
' Hvis Husk navn/kode er slået til - så log ind automatisk:
Session("LoginGotoURL") = Request.ServerVariables("SCRIPT_NAME")
Response.Redirect "dologin.asp"
Else
' ... ellers send brugeren til login-siden:
Response.Redirect "login.asp"
End If
End If

' Resten af siden følger her ...


Håber jeg fik det penslet ud så du forstår det (håber ikke det blev alt
for langt - jeg burde jo nærmest skrive en artikel ...). Jeg ved ikke om der
er en nemmere måde, men jeg tror det ikke, hvis det skal være sikkert.
Ovenstående kode skal i øvrigt tilrettes lidt mere før der er fuld sikkerhed
på. Hvis det tilmed skal laves mere sufistikeret kunne man evt. løbende
ændre SaveID. Det vil nok øge sikkerheden en lille smule.

Mvh. Bjarke



Rasmus Christian Kaa~ (08-06-2003)
Kommentar
Fra : Rasmus Christian Kaa~


Dato : 08-06-03 13:07


"Bjarke Walling Petersen" <bwp.news.fjern-dette@bwp.dk> wrote in message
news:bbv8h6$2m86$1@news.cybercity.dk...
> Rasmus Christian Kaae skrev:
> > Mon ikke nærmere der er tale om et "[x] Husk min kode/password" ting
(som
> > kræver cookies!)
>
> Jo, det tror jeg faktisk du har ret i. Det havde jeg ikke lige overvejet.
>
>
> Jeg tror jeg ville tildele hver bruger i databasen en nøgle som f.eks.
kunne
> laves ved at tage MD5 af et tilfældigt tal - noget lignende:
>
> Randomize Timer
> SaveID = MD5(CStr(Rnd))


tjae, det er jo op til den enkelte Jeg ville nok nærmere lave det som en
kombination af brugerensnavn, password og så et superhemligt keyword [for at
slippe for udvidelser i DB'en]
dvs:

Response.Cookies("login") = MD5(username & password & hemligtkodeord)

så kan man ret nemt lave en verify-funktionalitet.



Bjarke Walling Peter~ (08-06-2003)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 08-06-03 13:11

Rasmus Christian Kaae skrev:
> tjae, det er jo op til den enkelte Jeg ville nok nærmere lave det som
en
> kombination af brugerensnavn, password og så et superhemligt keyword [for
at
> slippe for udvidelser i DB'en]
> dvs:
>
> Response.Cookies("login") = MD5(username & password & hemligtkodeord)
>
> så kan man ret nemt lave en verify-funktionalitet.

Klart nok. Er hemligtkodeord så en konstant du har defineret (som ingen
andre kender til)?

Jeg tror dog helst jeg vil have det gemt i databasen, da man så hurtigere
kan logge brugerne ind med:

SELECT ID, Username, Password FROM Users WHERE SaveID = '<her indsættes den
modtagede værdi>'

Mvh. Bjarke



Rasmus Christian Kaa~ (08-06-2003)
Kommentar
Fra : Rasmus Christian Kaa~


Dato : 08-06-03 13:18

> Klart nok. Er hemligtkodeord så en konstant du har defineret (som ingen
> andre kender til)?

Ja.

> Jeg tror dog helst jeg vil have det gemt i databasen, da man så hurtigere
> kan logge brugerne ind med:
>
> SELECT ID, Username, Password FROM Users WHERE SaveID = '<her indsættes
den
> modtagede værdi>'


Ja, det er selvfølgelig rigtig nok.. men tilgengæld hvis der sker noget med
din database så er du en smule på røven



Bjarke Walling Peter~ (08-06-2003)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 08-06-03 13:43

Rasmus Christian Kaae skrev:
> Ja, det er selvfølgelig rigtig nok.. men tilgengæld hvis der sker noget
med
> din database så er du en smule på røven

Ok. Det kan jeg godt se - så nok hellere være på den sikre side. Man kunne
dog tage backups - nu skal jeg dog ikke lyde alt for hellig - for det
"glemmer" jeg ofte

Mvh. Bjarke



Jesper Stocholm (08-06-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 08-06-03 13:13

Bjarke Walling Petersen wrote :

> Rasmus Christian Kaae skrev:
>> Mon ikke nærmere der er tale om et "[x] Husk min kode/password" ting
>> (som kræver cookies!)
>
> Jo, det tror jeg faktisk du har ret i. Det havde jeg ikke lige
> overvejet.
>
> Jeg tror jeg ville tildele hver bruger i databasen en nøgle som f.eks.
> kunne laves ved at tage MD5 af et tilfældigt tal - noget lignende:
>
> Randomize Timer
> SaveID = MD5(CStr(Rnd))

Blot en lille teknikalitet ... men alligvel.

Rnd()-operatoren i VBs (og vel fra COM oprindeligt) kan ikke forventes at
have et særlig stort udfaldsrum - dvs der er relativt stor sandsynlighed
for, at der vil komme to ens tal ud af det på et (tidligt) tidspunkt.
Hvis man gerne vil have et fuldstændig tilfældigt input til sin hash-
funktion, så er det imo bedre at bruge Guid til at lave disse. Disse
skulle give "100%" sikkerhed for, at der ALDRIG nogensinde på nogen
computere i hele verden vil blive genereret to identiske Guids.

Koden kunne være noget i retning af

dim oGuid ' as Scriptlet.TypeLib
dim strGuid,saveId ' as string
set oGuid = Server.CreateObject("Scriptlet.TypeLib")
strGuid = oGuid.GUID
saveId = MD5(strGuid)



--
Jesper Stocholm - www.stocholm.dk - www.asp-faq.dk
** De andre siger, at han er 16 **
Svar venligst til gruppen og ikke til mig privat !
Skriv under det du svarer på - www.usenet.dk/netikette/citatteknik.html

Bjarke Walling Peter~ (08-06-2003)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 08-06-03 13:16

Jesper Stocholm skrev:
> Blot en lille teknikalitet ... men alligvel.
>
> Rnd()-operatoren i VBs (og vel fra COM oprindeligt) kan ikke forventes at
> have et særlig stort udfaldsrum - dvs der er relativt stor sandsynlighed
> for, at der vil komme to ens tal ud af det på et (tidligt) tidspunkt.
> Hvis man gerne vil have et fuldstændig tilfældigt input til sin hash-
> funktion, så er det imo bedre at bruge Guid til at lave disse. Disse
> skulle give "100%" sikkerhed for, at der ALDRIG nogensinde på nogen
> computere i hele verden vil blive genereret to identiske Guids.
>
> Koden kunne være noget i retning af
>
> dim oGuid ' as Scriptlet.TypeLib
> dim strGuid,saveId ' as string
> set oGuid = Server.CreateObject("Scriptlet.TypeLib")
> strGuid = oGuid.GUID
> saveId = MD5(strGuid)

Vidste jeg ikke, men nu du siger det! Jeg har hørt om Guids før, men aldrig
brugt det.
Er Scriptlet.TypeLib altid tilgængelig?

Mvh. Bjarke



Jesper Stocholm (08-06-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 08-06-03 13:32

Bjarke Walling Petersen wrote :

> Jesper Stocholm skrev:
>> Blot en lille teknikalitet ... men alligvel.
>>
>> Rnd()-operatoren i VBs (og vel fra COM oprindeligt) kan ikke
>> forventes at have et særlig stort udfaldsrum - dvs der er relativt
>> stor sandsynlighed for, at der vil komme to ens tal ud af det på et
>> (tidligt) tidspunkt. Hvis man gerne vil have et fuldstændig
>> tilfældigt input til sin hash- funktion, så er det imo bedre at bruge
>> Guid til at lave disse. Disse skulle give "100%" sikkerhed for, at
>> der ALDRIG nogensinde på nogen computere i hele verden vil blive
>> genereret to identiske Guids.
>
> Vidste jeg ikke, men nu du siger det! Jeg har hørt om Guids før, men
> aldrig brugt det.
> Er Scriptlet.TypeLib altid tilgængelig?

Det vil jeg mene - det er i hvert fald ikke en særskildt komponent der
skal installeres på maskinen før det virker.

Guids er i øvrigt fabelagtige til alle mulige ting, hvor man skal
garantere tilfældigheden af tal i en applikation. Microsoft bruger dem i
øvrigt selv i stor udstrækning i Windows til bla. håndtering af
forskellige identiteter i fx OE, "Isolated Storage" i .Net .



--
Jesper Stocholm - http://stocholm.dk
www.asp-faq.dk : FAQ for dk.edb.internet.webdesign.serverside.asp
www.usenet.dk/netikette/citatteknik.html : Skriv under det du svarer på
Svar til gruppen og ikke til mig privat !

Bjarke Walling Peter~ (08-06-2003)
Kommentar
Fra : Bjarke Walling Peter~


Dato : 08-06-03 13:45

Jesper Stocholm skrev:
> Bjarke Walling Petersen wrote :
> > Er Scriptlet.TypeLib altid tilgængelig?
>
> Det vil jeg mene - det er i hvert fald ikke en særskildt komponent der
> skal installeres på maskinen før det virker.
>
> Guids er i øvrigt fabelagtige til alle mulige ting, hvor man skal
> garantere tilfældigheden af tal i en applikation. Microsoft bruger dem i
> øvrigt selv i stor udstrækning i Windows til bla. håndtering af
> forskellige identiteter i fx OE, "Isolated Storage" i .Net .

Jeg tror jeg har set lyset mht. guids. Dem skal jeg helt sikkert til at
bruge forskellige steder i mine applikationer.

Mvh. Bjarke



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste