Autorisatie via data-annotaties in .NET

Geschreven door: op maandag 31 oktober 2016

Leestijd: 2 minuten

Sommige webapplicaties die online staan moeten alleen toegankelijk zijn voor bepaalde ingelogde gebruikers of bezoekers vanaf een reeks IP-adressen. In andere gevallen wil je dat de webapplicatie zelf beschikbaar is voor alle bezoekers, maar bepaalde methodes niet.

.NET heeft verschillende mogelijkheden om hiervoor te zorgen. Bijvoorbeeld via een validatie via code in de methode zelf of via data-annotaties. Die laatste staan hieronder beschreven.

Methoden in .NET

Een methode kan een bepaalde functie zijn die wordt aangeroepen door een bezoeker om een PDF-bestand te downloaden of bijvoorbeeld een view zoals een overzicht met alle gebruikers in de webapplicatie. In het MVC-framework van .NET zijn deze methoden Actions binnen Controllers, waarbij de methode altijd een ActionResult teruggeeft, in het geval van een view is dat View en in het geval van het downloaden van een bestand, kan dat een File zijn. Validatie via data-annotaties kan worden toegepast op zowel Controller als Action.

Data-annotaties

Data-annotaties zijn stukjes tekst die extra context of informatie geven aan de code, zonder de code zelf aan te passen. Een voorbeeld is [Required], waarmee je kan aangeven dat een eigenschap verplicht is:


  public class Klant
    {
        [Required]
        [Display(Name = "E-mail")]
        public string Email { get; set; }
    }

Rollen via data-annotaties

 

 

Via deze data-annotaties kan je er ook voor zorgen dat gebruikers ingelogd moeten zijn met een bepaalde rol voordat ze een Action mogen uitvoeren. Er zijn een aantal belangrijke data-annotaties:

 

 

  1. [Authorize]: hiermee wordt aangegeven dat een Controller of Action alleen toegankelijk is voor ingelogde gebruikers.
  2. [AllowAnonymous]: Niet-ingelogde bezoekers mogen de Action uitvoeren, zelfs als de Controller een ingelogde bezoeker verwacht.

Voorbeeld rollen via data-annotaties

  


[Authorize]
    public class WinkelController : Controller
    {

       [Authorize(Roles = "Beheerder, Administrator")]
        public ActionResult OverzichtBestellingen()
        {
            return View();
        }

        [AllowAnonymous]
        [HttpPost]
        public ActionResult Login()
        {
            /* Logincode */
            return View();
        }

 

In bovenstaande voorbeeld staat ook een methode om via Roles= aan te geven welke rollen (één van de) verplicht zijn.

IP-filter via data-annotatie

Sommige functionaliteit in een Controller wil je alleen beschikbaar hebben voor gebruikers vanaf een bepaald IP-adres. Door data-annotaties uit te breiden met een nieuwe annotatie, kan je dit bewerkstelligen. Deze uitbreiding is al gemaakt: Restrict Access to an MVC Action or Controller by IP Address using a Custom Action Filter.

Voeg bovenstaande ActionFilterAttribute aan je project toe en plaats in je app.config of web.config de toegestane IP-adressen: <add value="::1, 127.0.0.1, 10.0.*.*, 79.88.44.33" key="AuthorizeIPAddresses" />.

Nu kan je via de data-annotatie [AuthorizeIPAddress] elke Controller en Action naar wens alleen toegankelijk maken vanaf een of een aantal bepaalde IP-adressen.


Andere blogartikelen

  • Overeenkomsten tussen Growth Hacking en UX design

    Geschreven door: op zondag 13 september 2020

    Laten we beginnen met wat Growth hacking is, Growth hacking zijn experimenten voor oplossingen die groeiproblemen moeten oplossen. Dit is een nieuwe marketing aanpak die met name wordt gedreven door d ...

    Bekijk het artikel »
  • B2B SEO en Geoptimaliseerde Afbeeldingen

    Geschreven door: op woensdag 12 augustus 2020

    In een tijd waarin 27% van het koopproces van B2B kopers met eigen online research wordt doorgebracht is het essentieel om een goed vindbare website te hebben. Afbeeldingen kunnen, indien geoptimalise ...

    Bekijk het artikel »
  • Prospects zoeken B2B

    Geschreven door: op woensdag 12 augustus 2020

    Het zoeken van B2B prospects is een uitdaging voor elk bedrijf. Met name kwalitatieve B2B prospects.Door vooraf onderzoek te doen naar bedrijven die voldoen aan je criteria en je marketing hierop aan ...

    Bekijk het artikel »
Bel 072 5345 888
Meer dan 40 bedrijven vertrouwen op ons
Allrig is de alles in een leverancier binnen de energie-industrie
AOC is een toonaangevend wereldwijd bedrijf actief in de verkoop van kwaliteitsharsen
ERIKS is een toonaangevende en innovatieve leverancier aan de procesindustrie en aan machinebouwers, die zowel de rol van specialist als die van brede MRO-leverancier vervult
Industrieel dienstverlener Heinen & Hopman Engineering uit Bunschoten is dé wereldwijde specialist op het gebied van klimaatbeheersing
Handicare is een internationale organisatie die ouderen helpt om hun dagelijks leven gemakkelijker te maken door het produceren van hoogwaardige trapliften
Op de hoogte blijven?

Meld u aan voor de gratis nieuwsbrief om op de hoogte te blijven van onze activiteiten