Jag för söker skapa ett väldigt basic loginsystem för att bara ge olika personer access till en eller flera sidor. Själva loginkoden ska sedan läggas i en includefil och implementeras på samtliga sidor som ska lösenordsskyddas.
Jag vill sedan också bara ge vissa personer access till vissa sidor och andra personer till andra sidor. Dvs. kunna bestämma vem som ska ha access till en viss sida.
Det jag har gjort nu är att skapa en databas med kolumnerna användarnamn, namn, lösenord, Sida1 som ska lösenordsskyddas, Sida2 som ska lösenordsskyddas, osv..., osv...
Kolumnerna sida1, sida2 och så vidare är har bara värdet 1 eller 0 beroende på om personen ska ha access till sidan eller inte.
Nu undrar jag om det är någon som har en bra lösning på kod eller om någon redan frågat detta förut och jag kan spåna där för lite idéer?
Så här ser loginkoden ut än så länge:
Response.Expires = -1500
SQL = "SELECT Name FROM tblAdminLogin WHERE Signature LIKE '" & Session("username") & "' AND Password LIKE '" & Session("password") & "'"
Set Conn = server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "driver={SQL Server};server=localhost;uid=web;pwd=web;database=db112186"
Conn.Open
Set rs = Conn.Execute(SQL)
If rs.EOF Then
rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
Session("username") = ""
Session("password") = ""
Session.Abandon
Response.Write "<tr><td>Du måste ha ett giltigt användarnamn och lösenord.<br>"
Response.Write "Var god försök igen!<br>"
Response.Write "<a href=/admin/admin_login.asp>Försök igen</a></td></tr>"
Else
Name = rs("Name")
rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
...
Resten av sidkoden...
...
Det som saknas är själva sididentifieringen och så har jag lite problem med sessions i form av att jag måste stänga ner webläsaren efter att jag loggat ut för att kunna logga in igen.
Jo, det är ju poängen. Alla loggar in på samma sida men beroende på vem du är så har du access till vissa sidor.
Till exempel om jag är sysadmin så har jag kanske access till alla sidor och om jag är säljansvarig så har jag access till alla försäljningssidor eller om jag är personalansvarig så har jag bara access till sidan med lönerna på. (inte för att jag skulle låta nån hantera lönerna på nätet men som exempel).
Alla loggar in på samma sida och kommer till en förteckning över vilka sidor som finns.(<select> )
När de väljer en sida så känner sidan av om de har tillgång till sidan eller inte.
Problemet är att få in detta i ett script som sedan kan inkluderas på alla sidorna förutom loginsidan och eventuellt förteckningssidan(Fast det bör ju gå att lösa genom att ge alla användare access till den sidan).
Jag tror jag löste mitt eget problem genom att ge en variabel namnet på sidan som är samma som namnet på kolumnen i tabellen. Sedan lägger jag till variabeln dynamiskt i SQLsöksträngen.
typ så här:
<% Page = "Sida1" %>
Kod i includefil:
<%
Response.Expires = -1500
SQL = "SELECT Name FROM tblAdminLogin WHERE Signature LIKE '" & Session("username") & "' AND Password LIKE '" & Session("password") & "' AND " & Page & " LIKE 1"
Set Conn = server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "driver={SQL Server};server=localhost;uid=web;pwd=web;database=db112186"
Conn.Open
Set rs = Conn.Execute(SQL)
If rs.EOF Then
rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
Session("username") = ""
Session("password") = ""
Session.Abandon
Response.Write "<tr><td>Du måste ha ett giltigt användarnamn och lösenord.<br><br>"
Response.Write "Om du vill logga in igen klicka här:<br>"
Response.Write "<a href=/admin/admin_login.asp>Försök igen</a></td></tr>"
Else
Name = rs("Name")
rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
%>
Så som du gjort funkar perfekt, har gjort det flera gånger, med olika accesser osv.
Har du tillgång till servern, så kan du skapa användare där, och tvinga på en inloggning på servern för att komma åt sidorna. Man loggar in på servern med en dialogruta med användare/lösenord. Detta är dock smidigast om man har direkt tillgång till servern.
Med hjälp av en komponent (kommer inte ihåg namnet, tror den heter UserRights någonting) kan man kolla rättigheterna på den onloggade personen i ASP koden, och därefter avgöra vad som ska vara synligt på sidan, länkar osv.
Återigen, scriptet du kör nu funkar jättebra, men har du tillgång till servern kan du även göra som jag nämnde.
/T
------------------
This is what the KLF is about
262 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9