Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[asp.net] roles, rechtensysteem

Pagina: 1
Acties:

Verwijderd

Topicstarter
In mijn huidige CMS beschik ik over gebruikersgroepen, gebruikers en acties. Een gebruiker kan in meerdere groepen zitten. De rechten om bepaalde acties te mogen doen worden aan gebruikersgroepen toegekend. Het CMS bestaat uit meerdere modules en iedere module heeft zijn eigen acties. Het kan dus zijn dat een gebruikersgroep "edit" rechten heeft in de ene module en alleen "verwijder" rechten in een andere module.

Het CMS moet overgezet worden naar asp.net. Nu ben ik het standaard rechtensysteem van .NET aan het bestuderen. Ik zie hier echter alleen maar users en roles.Het lijkt er dus op dat een role een samenvoeging is van een actie en een gebruikersgroep. Ik wil de rechten echter dynamisch kunnen toekennen aan gebruikersgroepen. Nu vraag ik mij af of de situatie van het huidige CMS wel valt in te passen in het rechtensysteem van .NET of dat het verstandiger is om zelf maar een rechtensysteem in elkaar te sleutelen.

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

De SqlRoleProvider kent gewoon de methode IsUserInRole(username, role) en GetRolesForUser(username). AddUsersToRole kun je gebruiken om een role aan een gebruiker te koppelen.

Als je besluit om zelf een rechten systeem te bouwen, maak dan in elk geval gebruik van de abstracte provider classes zoals RoleProvider en MembershipProvider en misschien zelfs SiteMapProvider als het menu zich moet aanpassen aan de gebruiker (SiteMap heeft support voor rollen).

If it isn't broken, fix it until it is..


Verwijderd

Topicstarter
ik snap wel welke methodes er beschikbaar zijn in .NET maar voor mijn gevoel mist er nog een laag.

Neem de volgende situatie:

Je hebt een module "Bannerbeheer"
Je hebt hier een aantal acties die je kunt doen, waaronder "banner toevoegen" en "banner verwijderen"

Daarnaast heb je een module "Artikelenbeheer" , hier kun je onder andere de acties "artikel toevoegen" en "artikel verwijderen" doen.

Je wilt een bepaalde gebruiker de rechten "banner verwijderen" en "artikel toevoegen" toekennen. Als je dit met .NET op zou moeten lossen dan moet je volgens mij de acties als roles zien.

Je kent een user dus de roles "banner verwijderen" en "artikelen toevoegen" toe.

Maar wat nou als je meerdere gebruikers dezelfde rollen wilt toekennen, dan heb je geen overkoepelende gebruikersgroep binnen Actual.NET, maar moet je dezelfde gebruiker opnieuwe alle rechten toekennen. Of zie ik wat over het hoofd ?

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Daarom hebben wij als basis ook de RoleProvider gebruikt waarbij toekenning van de role aangeeft dat de gebruiker 'lees' rechten heeft. Daarnaast hebben wij extra properties toegevoegd voor Toevoegingen, wijzigen en verwijderen.

Ook hebben wij een overervings model geimplementeert. Een role kan namelijk gebaseerd worden op andere rollen. Daarmee kun je wel een soort van 'master' groep maken. Een role haalt ook gelijk de rechten op van 'gekoppelde' rollen.

De belangrijkste reden dat wij toch het rechtensysteem hierop hebben gebaseerd (ondanks vele aanpassingen) is dat we dan wel onder andere de bestaande UI controls kunnen gebruiken. Ook omdat we min of meer de asp.net standaard aanhouden is het voor nieuwe programmeurs op het project iets eenvoudiger omdat de basis in zowel artikelen en boeken wordt behandeld.

Microsoft heeft een framework gebouwd. Je moet asp.net dus niet zien als een kant- en klaar product. Veel andere asp.net 'security' projecten gebruiken juist ook deze classes voor hun basis.

If it isn't broken, fix it until it is..