Avatar billede cardinale Nybegynder
25. oktober 2002 - 20:48 Der 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??
Avatar billede hossein Nybegynder
26. oktober 2002 - 12:19 #1
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%>
Avatar billede cardinale Nybegynder
26. oktober 2002 - 18:22 #2
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")

objConn.Open dbConnString
objRS.ActiveConnection = objConn

        ' 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

    If Len(strErr) > 0 Then
        ' Her laves fejlmeddelsen om til rød skrift
        strErr = "<font color=red>" & strErr & "</font>"
    End If
End If
%>
<html>
<head>
<title>Login script</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="radiatorfilm.css" type="text/css">
</head><body bgcolor="#FFFFFF" text="#000000" class="unnamed1">
<table width="526" border="0" cellpadding="0" cellspacing="0">
  <!--DWLayoutTable-->
  <tr>
    <td width="67" rowspan="2" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
    <td width="460" height="46" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td>
    </tr>
  <tr>
    <td height="253" valign="top"> <form name="frmNews" method="POST" action="login.asp">
  <p><font size="4">Angiv brugernavn og adgangskode</font></p><%=strErr%><br><br>
  <table border="0">
    <!--DWLayoutTable-->
    <tr>
      <td width="97" height="24">Brugernavn:</td>
      <td colspan="3"><input type="text" name="Brugernavn" size="20"></td>
    </tr>
<script language="JavaScript">
    function setLoginFocus() {
        document.frmNews.Brugernavn.focus();
    }
    setLoginFocus();
</script>
    <tr>
      <td height="24">Adgangskode:</td>
      <td colspan="3"><input type="password" name="Adgangskode" size="20"> </td>
      <p> </tr>
    <tr>
      <td height="22"></td>
      <td width="35"></td>
      <td width="48" valign="top"> <input class="button" type="submit" value="Login" name="Action"></td>
      <td width="35"></td>
    </tr>
    <tr>
      <td height="5"></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
  </table>
  </p>
</form>
</td>
</tr>
</body>
</html>
Avatar billede hossein Nybegynder
27. oktober 2002 - 22:46 #3
Du skal tilføje en Autorization level for hver bruger. her er en god eksample:
http://www.activeserverpages.com/learn/security.asp
http://www.activeserverpages.com/learn/security2.asp
Avatar billede cardinale Nybegynder
29. oktober 2002 - 01:38 #4
Desværre ikke hvad jeg var ude efter.
Avatar billede cardinale Nybegynder
29. oktober 2002 - 01:38 #5
Jeg har fundet en anden løsning.
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