Toon posts:

[.NET / C] User Role Matrix methode bedenken

Pagina: 1
Acties:

Onderwerpen


  • PdeBie
  • Registratie: juni 2004
  • Laatst online: 27-09 15:12
Beste mede-developers,

ik ben momenteel bezig met de ontwikkeling van een systeem (in C# / .NET 3.5) waarbij de gebruiker moet inloggen en daarna rechten toegewezen krijgt.

Deze rechten worden op basis van een role toegewezen en aan de hand van die rechten mag een gebruiker bijvoorbeeld:
- een pagina wel of niet bezoeken
- een functionaliteit op een pagina wel of niet gebruiken
etc.

Het systeem zal zometeen meer dan 1000 gebruikers gaan dienen en in het begin een 3- tot 5-tal roles. Daarom zal er dus goed nagedacht moeten worden, over hoe we deze pagina's en rechten in gaan bouwen, om de site zo flexibel mogelijk te houden.
Het kan namelijk voorkomen dat er ooit een keer een role bij komt en dan moet het niet zo zijn dat we alle pagina's van de site door moeten wandelen om overal die role aan toe te voegen.

Wat zou hier de handigste methode voor zijn om dit te beheren? Op database niveau? in de web.config??

Ben benieuwd hoe jullie hier over denken.

  • RobIII
  • Registratie: december 2001
  • Nu online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

pdebie schreef op donderdag 07 oktober 2010 @ 15:24:
Het kan namelijk voorkomen dat er ooit een keer een role bij komt en dan moet het niet zo zijn dat we alle pagina's van de site door moeten wandelen om overal die role aan toe te voegen.
Dan moet je ook niet op basis van een rol toegang verlenen maar op basis van een permissie. Rollen zijn enkel 'voorgedefinieerde sets van permissies'. Een "Administrator rol" bevat dan "alle permissies" en een "Boekhouder" rol enkel permissies die hij nodig heeft voor z'n werkzaamheden. Een "Gast rol" is een rol zonder rechten (of bar weinig). Rollen kun je zo veel definiëren als je wil, permissies (rechten) is een (relatief) vaststaande lijst.

Een gebruiker kan dan bijvoorbeeld "boekhouder" (p1, p2, p8) zijn en "poweruser" zijn (p1, p4, p5, p7); waarbij pX een permissie is. Hij heeft dan effectief p1, p2, p4, p5, p7 en p8. En op basis van p4 besluit je of hij/zij dan toegang heeft tot een pagina waar je een p4 permissie nodig heeft. En p4 kan dan bijvoorbeeld "gebruiker mag de navigatiestructuur aanpassen" zijn ofzo.

Hier staat overigens wel een grappig idee daarover; het is wat alternatief maar het idee is leuk.

[Voor 31% gewijzigd door RobIII op 07-10-2010 15:44]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • urk_forever
  • Registratie: juni 2001
  • Laatst online: 27-09 16:46
In plaats van zoiets zelf te maken zou je nog kunnen overwegen om een product als Visual Guard te gebruiken. Ik heb er zelf nog geen ervaring mee, maar gebaseerd op de site lijkt het mij een krachtige oplossing.

Misschien dat ik het zelf ook ga toepassen in een toekomstig project.

Hail to the king baby!


  • PdeBie
  • Registratie: juni 2004
  • Laatst online: 27-09 15:12
RobIII schreef op donderdag 07 oktober 2010 @ 15:36:
[...]

Hier staat overigens wel een grappig idee daarover; het is wat alternatief maar het idee is leuk.
Ziet er inderdaad interessant uit. Gaan we eens lezen.

Dat van die permissies is trouwens een goede tip.
Voorbeeldje zoals het bijvoorbeeld bij ons zal gaan:
rol 1 - medewerker - alleen lezen
rol 2 - chef - lezen en aanmaken
rol 3 - admin - alle rechten

trouwens vergeten te melden net zie ik: We gaan het geheel bouwen op basis van de MembershipProvider van .NET.

  • RobIII
  • Registratie: december 2001
  • Nu online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

pdebie schreef op donderdag 07 oktober 2010 @ 16:27:

rol 1 - medewerker - alleen lezen
rol 2 - chef - lezen en aanmaken
rol 3 - admin - alle rechten
Ik wil je alleen aanraden permissies vele malen specifieker te maken; je hebt dus (bijv) de volgende permissies:

edit_content
delete_content
view_content
edit_users
delete_users
view_users
can_placeorder
can_update_copyrightnotice

Of weet ik het wat :P Op het moment dat je enkel edit/delete/view permissies maakt weet je nog steeds niet wat ze dan zouden mogen wijzigen/verwijderen/bekijken. Dat zou betekenen dat als je een gebruiker een edit permissie geeft hij/zij dus meteen content, users, facturen, navigatiestructuur en whatnot mag wijzigen...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • PdeBie
  • Registratie: juni 2004
  • Laatst online: 27-09 15:12
RobIII schreef op donderdag 07 oktober 2010 @ 16:52:
[...]

Ik wil je alleen aanraden permissies vele malen specifieker te maken
Ja inderdaad, dit kwam ook in me op.

Vandaag ga ik met de chef zitten om deze optie te bespreken. Ben benieuwd wat hij er van vind.
Persoonlijk vind ik het nog de beste optie om het op deze manier te benaderen, daar het standaard User/Role systeem van .NET niet helemaal voldoet.
Pagina: 1


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee