25. oktober 2002 - 20:48Der er
4 kommentarer og 1 løsning
Login med dynamisk oprettelse af brugere og deres rettigheder
Jeg har et login system der kan redirecte alt efter hvilket level brugeren er oprettet på - men det er ikke nok.
Nu er jeg gået et skridt videre.
Jeg har et cms-system hvor man bla kan oprette budgetter for et projekt og efterfølgende oprette brugere der må få lov til at se dette budget.
Hvordan skal loginscriptet se ud.
Lad os sige jeg opretter et budget - lad os kalde det budget1 - og efterfølgende opretter bruger1 der må se dette. Hvordan sikrer jeg mig at andre brugere ikke kan se budget1. Det hele skal være dynamisk. Det er ikke noget problem at lave en database med fx 10 faste poster med hver sin user der redirecter til hver deres site. Problemet er når det skal ske automatisk.
Jeg havde forestillet mig at når man logger ind som admin får en form hvor de kan oprette brugere - med brugernavn og password og så ved hjælp af en dropdown menu skulle bestemme hvilket budget brugeren skal have lov til at se.
Dvs - når den oprettede bruger gennem den samme loginform som admin og andre brugere logger ind skal vedkommende redirectes direkte til det pågældende budget. Og hvis den pågældende bruger kan url på de andres budgetter - skal disse sider ikke kunne til gåes.
Nogen der har en opskrift eller et forslag til dette??
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du kan bruge Cookie for at forhindre brugeren at få adgang til de data eller sider som han/hun ikke har ret eller adgang. Du kan sætte nedenstående code i en fil fx: Check.asp og "Include" den i toppen af hver side: <!--#include file="Check.asp"--> Og det er jo rigtig på admin siden gir du hver bruger adgang til en bestemt budget og i din sql sætning checker du værdien til budgetet.
<%if Request.Cookies("Username") <> "" then Response.Redirect ("send them to view the web site") session("submitted")="false" else 'send them back to login page Response.Redirect "Login.htm" Response.End end if%>
Og hvis jeg poster min kode er det noget som du kan finde ud af at udtænke? Anyway here goes:
<!-- #INCLUDE file="db.asp" --> <% IF (Session("Authorized") = ("True")) THEN Response.Redirect "menu_login.asp" END IF %> <% ' Hvis der er blevet trykket på knappen "Login" If Request.Form("Action") = "Login" Then ' Her forberedes de indtastede værdier til validering strUID = Trim(Replace(Request.Form("Brugernavn"),"'","")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))
' Hvis der er skrevet noget i både brugernavn og adgangskode If Len(strUID) > 0 And Len(strPWD) > 0 Then
dim objConn dim objRS set objConn = Server.CreateObject("ADODB.Connection") set objRS = Server.CreateObject("ADODB.Recordset")
' Opbygning af SQL streng strSQL = "SELECT UserID, filmid, trin FROM users"&_ " WHERE (Username = '" & strUID & "')"&_ " AND (Password = '" & strPWD & "')"
Set rs = objConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis brugeren fandtes i databasen intUID = rs("UserID") trin = rs("trin") filmid = rs("filmid") Session("Authorized") = "True"
Else ' Hvis brugeren ikke fandtes i databasen strERR = "Du blev ikke godkendt af systemet" End If
' Rydder op i vores connection objekt objConn.Close Set objConn = Nothing
If Len(intUID) Then ' Hvis variablen intUID indeholder en værdi sættes denne i sessionen "UserID" og brugeren bliver sendt videre Session("UserID") = intUID If trin = 1 THEN Response.Redirect "menu_login.asp" elseif trin = 2 THEN Response.Redirect "dokumenter.asp?filmid=" & rs("filmid") & "" END IF End If Else ' Hvis der ikke var angivet brugernavn og adgangskode strErr = "Du skal skrive både brugernavn og adgangskode" End If
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.