Undrar hur man bäst gör en funktion där registrerade användare automatiskt loggas in på en sida... Har du något förslag? Vet inte riktigt hur jag ska angripa det här problemet... Hur är det med säkerheten? >Hur är det med säkerheten? Säkerheten är självklart inte på topp. Men säkerheten när det gäller cookies vill jag påstå är ganska (väldigt) säker. Tack för att du tar dig tid... Detta trooor jag ska funka, har tyvärr inte tid att kolla upp det, är inte ens säker på Request.Cookies, men det verkar logiskt så testa! ;) Johan har det enda rätta alternativet. Cookies är inget tillräckligt säkert alternativ. Enda rätta? Den mest trångsynta fras jag kan... >>Enda rätta? Den mest trångsynta fras jag kan...Automatisk inloggning
/AdamSv: Automatisk inloggning
Sv: Automatisk inloggning
Om du ska ha automatisk inloggning så får man vara medveten om att man med tillgång till en dator som någon har loggat in med kan komma in på dennes konto. Av denna anledningen tycker jag att användaren ska få välja om den vill ha autoinloggning eller inte.
/JohanSv: Automatisk inloggning
Förslag? Njae, har du nån inloggning än?
Har du det så kan du ju maila den koden till mig här eller privat så ska jag slänga ihop ett snabbt automat-inlogg åt dig!Sv: Automatisk inloggning
Här är koden till inloggningen jag har idag:
<code>
<%
Option Explicit
'Anger att svenskt datum och tidsformat ska användas
Session.LCID = 1053
%>
<!-- #include virtual="adovbs.inc" -->
<!-- #include virtual="include/funktion/databas_inc.asp" -->
<%
'Definierar variabler
Dim objRS, strSQL
Dim strAnvNamn, strAnvLosen, strNamn
'Hämtar användarnamn & lösenord från formuläret på Default.asp
strAnvNamn = Request.Form("txtAnvNamn")
strAnvLosen = Request.Form("txtAnvLosen")
'If-sats för att kontrollera att användaren fyllt i både användarnamn och lösenord
'Om inte, flyttas han tillbaka till inloggnings-sidan Default.asp
If strAnvNamn <> "" AND strAnvLosen <> "" Then
'SQL-fråga
strSQL = "SELECT * FROM tblAnvandare, tblKontor, tblRegion WHERE tblAnvandare.anvnamn = '" & strAnvNamn & "'"
strSQl = strSQL & " AND tblAnvandare.kontorID = tblKontor.kontorID AND tblKontor.regionID = tblRegion.regionID"
'Instansierar och skapar objektet RecordSet
SET objRS = Server.CreateObject("ADODB.RecordSet")
With objRS
.ActiveConnection = objConnect
.Source = strSQL
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open
End With
'If-sats för att kontrollera att användarnamnet var korrekt
'Om vi lyckats hämta en post från tabellen tblAnvandare
IF objRS.EOF AND objRS.BOF Then
Response.Redirect ("default.asp")
Else
'If-sats för att kontrollera användarens lösenord
IF strAnvLosen = objRS("anvLosen") Then
'Variabel för att skapa ETT namn av fnamn & enamn från tblAnvandare
strNamn = objRS("fnamn") & " " & objRS("enamn")
'Skapar Sessions-variabler för användaren
Session("login") = True
Session("anvID") = objRS("anvID")
Session("regionID") = objRS("regionID")
Session("gruppID") = objRS("gruppID")
Session("namn") = strNamn
Session("besok") = objRS("besok") + 1
Session("besokdatum") = objRS("besokdatum")
Session("besoktid") = objRS("besoktid")
'Anger hur lång tid sessionen kan vara inaktiv innan
'användaren "loggas ut"
Session.Timeout = 60
objRS.Close
strSQL = "SELECT tblAnvandare.besok, tblAnvandare.besokdatum, tblAnvandare.besoktid FROM tblAnvandare WHERE tblAnvandare.anvID = " & Session("anvID")
'Lägger till den nya posten till objRS
objRS.Open strSQL, objConnect, adOpenStatic, adLockOptimistic
objRS("besok") = Session("besok")
objRS("besokdatum") = Date()
objRS("besoktid") = Left(time(),5)
objRS.Update
'Flyttar användaren till sidan "start.asp" om det är första besöket!
If objRS("besok") =< 1 Then
Response.Redirect ("start.asp")
End If
Response.Redirect ("sektion/start/default.asp")
Else
Response.Redirect ("default.asp")
End If
End If
'Stänger databasen och tömmer objekten RecordSet, Connection
objRS.Close
objConnect.Close
SET objRS=Nothing
SET objConnect=Nothing
Else
Response.Redirect ("default.asp")
End If
%>
</code>Sv: Automatisk inloggning
Annars ska jag läsa på mer och hjälpa igen *flummig*
/Molle
<%
Option Explicit
'Anger att svenskt datum och tidsformat ska användas
Session.LCID = 1053
%>
<!-- #include virtual="adovbs.inc" -->
<!-- #include virtual="include/funktion/databas_inc.asp" -->
<%
If Request.Cookies("Minsida")("login") = True
Then
Session("login") = Request.Cookiers("Minsida")("login")
Session("anvID") = Request.Cookiers("Minsida")("anvID")
'osv...
Response.Redirect ("sektion/start/default.asp")
Else
End If
'Definierar variabler
Dim objRS, strSQL
Dim strAnvNamn, strAnvLosen, strNamn
'Hämtar användarnamn & lösenord från formuläret på Default.asp
strAnvNamn = Request.Form("txtAnvNamn")
strAnvLosen = Request.Form("txtAnvLosen")
'If-sats för att kontrollera att användaren fyllt i både användarnamn och lösenord
'Om inte, flyttas han tillbaka till inloggnings-sidan Default.asp
If strAnvNamn <> "" AND strAnvLosen <> "" Then
'SQL-fråga
strSQL = "SELECT * FROM tblAnvandare, tblKontor, tblRegion WHERE tblAnvandare.anvnamn = '" & strAnvNamn & "'"
strSQl = strSQL & " AND tblAnvandare.kontorID = tblKontor.kontorID AND tblKontor.regionID = tblRegion.regionID"
'Instansierar och skapar objektet RecordSet
SET objRS = Server.CreateObject("ADODB.RecordSet")
With objRS
.ActiveConnection = objConnect
.Source = strSQL
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open
End With
'If-sats för att kontrollera att användarnamnet var korrekt
'Om vi lyckats hämta en post från tabellen tblAnvandare
IF objRS.EOF AND objRS.BOF Then
Response.Redirect ("default.asp")
Else
'If-sats för att kontrollera användarens lösenord
IF strAnvLosen = objRS("anvLosen") Then
'Variabel för att skapa ETT namn av fnamn & enamn från tblAnvandare
strNamn = objRS("fnamn") & " " & objRS("enamn")
'Skapar Sessions-variabler för användaren
Session("login") = True
Session("anvID") = objRS("anvID")
Session("regionID") = objRS("regionID")
Session("gruppID") = objRS("gruppID")
Session("namn") = strNamn
Session("besok") = objRS("besok") + 1
Session("besokdatum") = objRS("besokdatum")
Session("besoktid") = objRS("besoktid")
'Cookies
Response.Cookies("Minsida")("login") = True
Response.Cookies("Minsida").Expires = "July 4, 2002"
Response.Cookies("Minsida")("anvID") = Session("anvID")
'osv...
'Anger hur lång tid sessionen kan vara inaktiv innan
'användaren "loggas ut"
Session.Timeout = 60
objRS.Close
strSQL = "SELECT tblAnvandare.besok, tblAnvandare.besokdatum, tblAnvandare.besoktid FROM tblAnvandare WHERE tblAnvandare.anvID = " & Session("anvID")
'Lägger till den nya posten till objRS
objRS.Open strSQL, objConnect, adOpenStatic, adLockOptimistic
objRS("besok") = Session("besok")
objRS("besokdatum") = Date()
objRS("besoktid") = Left(time(),5)
objRS.Update
'Flyttar användaren till sidan "start.asp" om det är första besöket!
If objRS("besok") =< 1 Then
Response.Redirect ("start.asp")
End If
Response.Redirect ("sektion/start/default.asp")
Else
Response.Redirect ("default.asp")
End If
End If
'Stänger databasen och tömmer objekten RecordSet, Connection
objRS.Close
objConnect.Close
SET objRS=Nothing
SET objConnect=Nothing
Else
Response.Redirect ("default.asp")
End If
%>Sv: Automatisk inloggning
En liten sak jag vill slänga in här:
Säkerheten på ett företag beror inte på alla fina superduper lösningar du utvecklar, om dom anställda (användarna utav system) inte har klart för sig hur dom skall hantera användarnamn/lösenord och sina system när dom inte är i närheten så fallerar allting. En välutarbetad säkerhetspolicy som bankas in i huvudet på folk och ett inloggningsförfarande byggt efter den, är det enda rätt.
Givetivs, det beror på vad det är du skall skapa också.. en lite avägning där, fördel och nackdel ... alltid.Sv: Automatisk inloggning
Allt går väl att lösa på sitt sätt ;)Sv: Automatisk inloggning
Allt går väl att lösa på sitt sätt ;)
Finns bara ett sätt, nämligen rätt sätt. ;)
Jag menade bara att det enda rätta när det gäller säkerhet inom ett företag är att ha en grund att stå på en (En säkerhetspolicy), och sedan är det din uppgift som utvecklare att skapa en applikation baserad på den. Hur du sedan löser det programmeringsmässigt, är din sak. Men där finns ju också bra och dåliga sätt.. ;)