webForumDet fria alternativet

Rättigheter

ASP

13 svar · 446 visningar · startad av Biasse

Medlem sedan aug. 2003480 inlägg
Frågan#1

Har en sida där jag skulle vilja bestämma hur menyn ska se ut för olika medlemar som loggat in.
Ska kunna bestämma 2-3 olika behörighets nivåer.

Har provat runt lite själv men gått i väggen med det.

Finns det nått färdigt script eller annan lösning på det?

mvh Biasse :q

Medlem sedan dec. 19996 522 inlägg
#2

Hur identifierar du deras behörighet idag då ?

Medlem sedan aug. 2003480 inlägg
#3

Jag har bara en login sida idag så det måste nog donas en hel del.

Medlem sedan dec. 19996 522 inlägg
#4

Hur är den då ? Har du användarna i en databas ?

Medlem sedan aug. 2003480 inlägg
#5

Dom ser alltså samma sidor alla. Scriptet ger alla samma behörighet och det är det jag vill ändra på.

Medlem sedan aug. 2003480 inlägg
#6

Jepp

Medlem sedan aug. 2003480 inlägg
#7

erka. du har pm

Medlem sedan dec. 19996 522 inlägg
#8

Ja men hur loggar de in ? Har de alla samma lösenord och inget som identifierar dem idag ? Isåfall får du börja med att tex göra en databasdriven login mot tex access.

En databas skulle kunna se ut så här (om du kör access)
TBL_Users
-Pk_UsrId (Primärnyckel räknare)
-Fk_AccessLevelId (Främmandenyckel från tabellen TBL_AccessLevels
-UsrName (Text)
-UsrPassword (Text)

TBL_AccessLevels
-Pk_AccessLevelId (Primärnyckel räknare)
-AccessId (tal, skulle även kunna vara Pk_AccessLevelId id:t)
-AccessDescription (text)

Sen kan du även om du vill bygga in menyerna i en tabell
TBL_MenuItems
-Pk_MenuItemId
-MenuItemText
-MenuAccessLevel
-MenuItemPageName

Där du bygger upp menyerna och visar endast de ens behörighets id har rätt att se.

Allt beror på hur du vill lösa det, du skulle kunna ta och skippa meny tabellen och köra en case satts om vilken "statisk" meny du ska visa,och sedan på sidorna köra en behörighetskoll (vilket du även måste göra med tabellsättet)

Medlem sedan aug. 2003480 inlägg
#9

Nej alla har olika lösen.

Medlem sedan mars 20002 836 inlägg
#10

erka skrev:

En databas skulle kunna se ut så här (om du kör access)
TBL_Users
-Pk_UsrId (Primärnyckel räknare)
-Fk_AccessLevelId (Främmandenyckel från tabellen TBL_AccessLevels
-UsrName (Text)
-UsrPassword (Text)

TBL_AccessLevels
-Pk_AccessLevelId (Primärnyckel räknare)
-AccessId (tal, skulle även kunna vara Pk_AccessLevelId id:t)
-AccessDescription (text)

Sen kan du även om du vill bygga in menyerna i en tabell
TBL_MenuItems
-Pk_MenuItemId
-MenuItemText
-MenuAccessLevel
-MenuItemPageName

Det blir väldigt stelt att ha den uppbyggnaden.
Säg att vi har dessa menyer atlernativ:

- Produkter
- Säljstöd
- Support

Nu är det så att Nisse behöver tillgång till Produkter & Support, Eva till Support & Säljstöd, Pelle till Produkter, Kalle till Produkter & Säljstöd

Hur skulle det då lösas med med tabellerna ovan om varje person endast kan ingå i en AccessLevel?

Jag skulle nog vilja ha en tabell till där man kopplar användarid + AccessLevel id för att kunna ge olika personer olika behörigheter.

Kika gärna igenom hur de har löst det i IBuySpy portalen (ok, det är asp.net men går att "tweaka" till Classic ASP

cya,
/PatrikB

Medlem sedan juli 20033 147 inlägg
#11

Mm fint sagt PatrikB. Du kan även skapa en kolumn i databasen som heter Access. I den skriver du sedan i det access numret personen i fråga ska ha. Sen kör du en If koll om personen har så hög access nivå som krävs för att innehållet ska visas.

<%If Session("access") > "1" then%>

MVH

Medlem sedan aug. 2003480 inlägg
#12

hmm.. Finns det inget färdigt script man kan kika på??
Det här är helt nytt för mig...

Medlem sedan dec. 19996 522 inlägg
#13

PatrikB Jo det skulle man kunna göra men jag uppfattade det som han skulle ha 2-3 olika typer av användare, 2-3 olika menyer, och då tog jag det som var enklast. Ska han ha det som skrev är det ju bara att flytta

-AccessId till användartabellen och köra en kommasepareradlista (eller en länktabell) så får du varje menyalternativ på användare

Medlem sedan aug. 2003480 inlägg
#14

Min kontroll sida ser ut så här idag. Men hur jag än testar får jag inte till det. Jag vill ha 3 olika nivåer på inloggningen och har gjort en extra komlum i databasen som heter "access". Nivåerna har jag tänkt skulle heta 1, 2 & 3. Jag kan tänka mig att ha 3 olika sidor att komma till ochså men efter som jag har ett lösen skydd på dom så måste det ochså ändras till alla. Det står längst ner som det är idag.
Hur skulle ni löst det om ni skrivit om det då??
_______________________________________
kontroll.asp:
<%

Session.TimeOut=120
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/admin.mdb")&";pwd=Utz14trWQ"
Set RecSet = Server.CreateObject("ADODB.Recordset")

SQL = "Select * From admin"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic

IF (RecSet.EOF or RecSet.BOF) then
Session("mess") = "Databasen är tom!"
Response.Redirect "index.asp"
ELSE

Do Until RecSet.EOF
IF RecSet("anvnamn") = Request.Form("anvnamn") AND RecSet("losenord") = Request.Form("losenord") Then
Session("check") = "111ok111"
Session("passw") = "YtSQ12uTr"

RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing

Response.Redirect "index2.asp"

END IF

RecSet.MoveNext
Loop

RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing

Session("mess") = "fel användarnamn eller lösenord"
Response.Redirect "index.asp"
END IF
%>
__
Sid skyddet:
<% IF NOT Session("check") = "111ok111" AND NOT Session("passw") = "YtSQ12uTr" THEN
Session("mess") = "Du måste logga in först!"
Response.Redirect "index.asp"
ELSE %>
_
____
mvh Biasse

320 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
183 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
183 ms — ändringar (db)