17. maj 2003 - 13:53Der er
19 kommentarer og 1 løsning
adgang til systemet baseret på login
Hej allesammen.
Jeg sidder her og prøver at finde eksempler, tutorials mm. om hvordan man kan lave adgangsbegrænsninger i et system baseret på en brugernavn / password.
Det skal være sådan at hvis det er en administrator, så skal der være fuld adgang til systemet, imens at hvis det er en alm. bruger, så skal der f.eks være adgang til rapportskrivning.
Mit eget forslag ville være at der i en database var brugernavn/password samt en række kolonner, hvor der så var et 0 eller 1 tal, og man så tjekkede på dette. Er dette løsningen?
Håber i kan hjælpe, da det vel er noget af det første man skal have indført i et system?
Level based security hvor brugere indeles i niveauer og et højere niveau altid har adgang til det et lavere niveay har adgang til er det simpleste.
Idag bruger man dog ofte matrix baseret adgang hvor man har bruger/rolle i den ene dimension og side/fuktion i den anden dimension, så man kan vilkårligt kontrollere adgangen.
Normalt vil man definere roller, give rollerne adgang og så tildele brugernavne en eller flere roller. Både JAAS og form based web applikations login bygger på det koncept.
Mit behov for systemet er, at når en bruger logger sig ind, f.eks som en almindelig medarbejder, så skal vedkommende ikke have adgang til at kunne skrive rapporter ud, oprette nye medarbejdere osv. Mit ønske var, at når en sådan bruger loggede sig ind, så skulle vedkommende slet ikke kunne se knapperne for disse funktioner, imens en administrator skulle have adgang til det hele (Alle knapper mm.)
Så vidt jeg kan se, så er det nok mest "programmatic security" jeg skal bruge.
og ville være bedste hvis det blev lavet deklarativt, hvis jeg har forstået det på den måde at det er foruddefineret i f.eks en db at brugeren har rettigheder til det og det.
tror at jeg vil lukke spg. nu og så undersøge mulighederne iblandt de nævnte, men takker mange gange for de muligheder der kom frem. og hvis det går helt galt, så kan jeg jo altid vende tilbage igen.
Der svarede jeg vist lidt hurtigt:-) jeg kunne godt tænke mig at få lidt forslag til hvordan jeg skal læse koden fra tabellen. behøves ikke hvordan jeg får adgang og det, mere bare hvordan jeg kan udelukke nogle funktioner for brugeren. Spg er hermed ½ åbent igen
Hvis du vil køre level orienteret, så laver du (som Disky beskrev) en tabel med:
username password level
ved login verificerer du at username+password er validt og gemmer enten brugernavn eller level (i sidste tilfælde slipper du for at slå level op med brugernavn hver gang der skal checkes).
Hver gang du skal checke adgang sammenligner du så level med det krævede mindste level.
Hvis du vil køre matrix orienteret så laver du to tabeller:
username password
og
username role
[pointen er at et brugernavn kan have flere roller]
ved login verificerer du at username/password er validt og gemmer enten brugernavn eller alle roller for brugernavn (i sidste tilfælde slipper du for at slå roller op hver gang der skal checkes).
Hver gang du skal checke adgang undersøger du bare om brugeren har den krævede rolle.
dvs at jeg oppe i gui skal tjekke for hver knap der skal bruges, om den har "tilladelse" til at blive vist, for så var det nogenlunde samme ide jeg havde tænkt mig - Mente bare at det ville blive lidt omsonst
Det er vist en ok måde at gøre det på, så er det bare om jeg kan få det til at køre i mit eksempel, men der er vel ikke andet for end at jeg må prøve mig lidt frem med de ovenstående eksempler, dog tror jeg også at den bliver lavet til en singletonklasse. Men takker mange gange for hjælpen.
Synes godt om
Ny brugerNybegynder
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.