Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

ASP .NET Support Voice Column: ASP.NET security overview

Als u deze kolom wilt aanpassen aan uw behoeften, nodigen we u uit om uw ideeën in te dienen over onderwerpen die u interesseren en problemen die u wilt zien behandeld in toekomstige Knowledge Base-artikelen en ondersteuningsstemkolommen. U kunt uw ideeën en feedback indienen met behulp van het formulier Vraag om het. Er is ook een koppeling naar het formulier onderaan deze kolom.

Inleiding

Beveiliging is een integraal onderdeel van elke webtoepassing. Inzicht in ASP.NET beveiliging helpt bij het bouwen van beveiligde webtoepassingen. Dit document biedt een kort overzicht van beveiliging in ASP.NET. U kunt de verschillende bronnen en aanwijzingen in dit document gebruiken om de onderwerpen uitgebreid te bestuderen.

Terug naar boven
 

Inzicht in het IIS-beveiligingsmodel

Voordat de aanvragen ASP.NET bereiken, moeten ze worden geverifieerd door Microsoft Internet Information Services (IIS). Het zou erg handig zijn om te leren hoe IIS-beveiliging werkt. Zie de volgende bronnen voor nuttige informatie.
INFO: Hoe IIS browserclients
verifieertWebbeveiliging ontwarren: optimaal profiteren van IIS-beveiliging
Hoe werkt het?
Beveiligingsmodel voor ASP.NET-toepassingen
Microsoft Internet Information Server Security Overview

Terug naar boven
 

Informatie over werkprocesidentiteit

In Microsoft Windows 2000 of op Microsoft Windows XP wordt ASP.NET uitgevoerd onder een speciale gebruiker met de naam ASPNET. Als u de .NET Framework versie 1.1 op een domeincontroller installeert, wordt het lokale ASPNET-account niet gemaakt. In plaats daarvan worden ASP.NET toepassingen uitgevoerd onder andere identiteiten.

Op Windows 2000-domeincontrollerservers worden ASP.NET toepassingen uitgevoerd onder de IWAM_machinename-identiteit. Op Windows 2003-domeincontrollerservers worden ASP.NET toepassingen uitgevoerd onder de NETWORK SERVICE-identiteit (ongeacht de IIS-isolatiemodus). Onder bepaalde omstandigheden moet u extra stappen uitvoeren om ASP.NET op een domeincontroller uit te voeren om de installatie correct te laten werken.

317012 Identiteit verwerken en aanvragen in ASP.NET

Terug naar boven
 

Verificatie in ASP.NET autorisatie

Verificatie is het proces van het verkrijgen van identificatiereferenties, zoals naam en wachtwoord van een gebruiker en het valideren van deze referenties op basis van een instantie. Als de referenties geldig zijn, wordt de entiteit die de referenties heeft verzonden beschouwd als een geverifieerde identiteit. Nadat een identiteit is geverifieerd, bepaalt het autorisatieproces of die identiteit toegang heeft tot een bepaalde resource.

ASP.NET verificatie implementeert via verificatieproviders, de codemodules die de code bevatten die nodig is om de referenties van de aanvrager te verifiëren. ASP.NET ondersteunt formulierverificatie, paspoortverificatie en Windows-verificatieproviders.

Als u een verificatieprovider wilt inschakelen voor een ASP.NET-toepassing, hoeft u alleen als volgt een vermelding voor het toepassingsconfiguratiebestand te maken:

// Web.config file     
<authentication mode= "[Windows|Forms|Passport|None]"/>

De modus is ingesteld op een van de verificatiemodi: Windows, Formulieren, Passport of None. De standaardwaarde is Windows. Als de modus Geen is, past ASP.NET geen extra verificatie toe op de aanvraag. Dit kan handig zijn wanneer u een aangepast verificatieschema wilt implementeren of als u alleen anonieme verificatie gebruikt en het hoogst mogelijke prestatieniveau wilt.

De verificatiemodus kan niet worden ingesteld op een niveau onder de hoofdmap van de toepassing. Net als bij andere ASP.NET-modules nemen submappen in de URL-ruimte verificatiemodules over, tenzij ze expliciet worden overschreven. Terug naar boven
 

Verificatie op basis van formulieren

Formulierverificatie is een systeem waarmee niet-geverifieerde aanvragen worden omgeleid naar een HTML-formulier met behulp van HTTP-clientomleiding. De gebruiker geeft referenties op en verzendt het formulier. Als de toepassing de aanvraag verifieert, geeft het systeem een cookie uit die de referenties bevat of een sleutel voor het opnieuw aanvragen van de identiteit. Volgende aanvragen worden uitgegeven met de cookie in de aanvraagheaders. Ze worden geverifieerd en geautoriseerd door een ASP.NET gebeurtenis-handler met behulp van de validatiemethode die de ontwikkelaar van de toepassing opgeeft.

Statische bestandstypen beveiligen met formulierverificatie

Standaard worden met formulierverificatie alleen ASPX-pagina's en andere .NET-extensies beveiligd. U kunt formulierverificatie configureren om andere statische extensies te beveiligen, zoals .jpg, .gif, .html, .pdf, enzovoort. Hiervoor wijst u deze extensies als volgt toe aan aspnet_isapi.dll met behulp van IIS-beheer:

  1. Open IIS-beheer. Klik hiervoor op Start, klik op Programmabestanden, wijs Systeembeheer aan en klik vervolgens op Internet Information Services Manager.

  2. Zoek de virtuele map van uw toepassing en klik er met de rechtermuisknop op (uw toepassing moet zijn ingeschakeld voor formulierverificatie).

  3. Klik op Eigenschappen.

  4. Klik op Configuratie.

  5. Klik op het tabblad Toewijzingen op
    Toevoegen.

  6. Klik in het vak Uitvoerbaar op aspnet_isapi.dll. Deze bevindt zich in de map %windows%\Microsoft.NET\Framework\FrameworkVersion.

  7. Typ in het vak Extensie de extensie (bijvoorbeeld .jpg).

  8. Geef ten minste 'GET'-werkwoord op.

  9. Schakel het selectievakje Controleren of bestand bestaatuit.

  10. Klik op OK voor de rest van de dialoogvensters.

Klassieke ASP-pagina's beveiligen met formulierverificatie

Het beveiligen van klassieke ASP-pagina's met formulierverificatie wordt niet ondersteund omdat ASP en ASP.NET verschillende handlers gebruiken. U kunt het echter wel laten werken met behulp van COM-Interop en webservices.


Het volgende voorbeeld zou moeten werken. Dit zou vrij eenvoudig zijn geweest met behulp van eenvoudige COM Interop om de formsAutentication-hulpprogrammafuncties aan te roepen. Voor de functies is echter een HttpContext vereist, die alleen beschikbaar is in een ASP.NET-toepassing.

Als tijdelijke oplossing maakt u een ASP.NET-webservice waarmee de formulierverificatietickets worden gevalideerd.

  1. Gebruik het voorbeeld van ASP.NET formulierverificatie uit het volgende artikel om te beginnen:

    301240 Verificatie op basis van formulieren implementeren in uw ASP.NET-toepassing met behulp van C#.NET
     

  2. Maak een klasse die handmatig een ticket valideert dat het wordt doorgegeven, retourneert de cookienaam van de formulierverificatie die in gebruik is en retourneert de aanmeldings-URL (allemaal zodat de code zelfstandig kan zijn met minimale beheer vereist):

    ////////////// start sample code //////////////
    
    //this method validates a ticket passed from ASP
    public bool IsAuthenticated(string rawCookieData)
    {
    if(rawCookieData.Trim().Length <= 0)
    return false;
    
    FormsAuthenticationTicket decryptedTicket;
    
    try
    {
    decryptedTicket = FormsAuthentication.Decrypt(rawCookieData);
    }
    catch
    {
    //log reason for failure or whatever here if you like
    return false;
    }
    
    if (decryptedTicket.Expired)
    return false;
    
    // Optionally you could change the method signature to return
    // the decrypted ticket and then, you can call RenewTicketIfOld
    // and then implement code on the ASP side to update the cookie
    // with the newed ticket.  This would only be necessary if the 
    // ticket has a timeout set (this resets the timeout)
    // see the MSDN docs on FormsAuthentication.RenewTicketIfOld.
    
    return true;
    
    }
    
    // method merely returns the name of the cookie being used
    public string GetCookieName()
    {
    return FormsAuthentication.FormsCookieName.ToString();
    }
    
    // method returns the login url used in the redirect
    // this is trickier since there is no FormsAuth utility function available to 
    return this so we have to manually look at web.config
    private string GetLoginURL() 
    {
    string sConfigPath = Server.MapPath(Request.ApplicationPath) + "\\web.config";
    
    XmlDocument doc = new XmlDocument();
    doc.Load(sConfigPath);
    
    try
    {
    XmlNode xmlNodeForms = 
    doc.SelectSingleNode("configuration/system.web/authentication/forms");
    return xmlNodeForms.Attributes.GetNamedItem("loginUrl").InnerText;
    }
    catch
    {
    throw new System.Exception("error in GetLoginURL()");
    }
    
    }
    
    ////////////// end sample //////////////
    
  3. Maak een andere .NET-wrapperklasse die deze webservice aanroept (of maak en compileer een webproxy-klasse).

  4. Gebruik Regasm.exe en Gacutil.exe om deze wrapper-klasse aan te roepen vanuit ASP via ComInterop.

  5. De ASP-code ziet er ongeveer als volgt uit:

    Set oAuthClass = Server.CreateObject("ASPNETFormsAuth.WrapperClass")
    If Not oAuthClass.IsAuthenticated(Request.Cookies(oAuthClass.GetCookieName)) Then
         Response.Redirect("http://servername/ASPApplicationRoot/" & 
    oAuthClass.GetLoginURL & "?RetrunURL=" & Requset.ServerVariables("URL"))
    End If

Zie de volgende bronnen voor meer informatie over formulierverificatie:

Formulierverificatieprovider

Verificatie op basis van formulieren implementeren in een ASP.NET-toepassing met behulp van C#.NET


Terug naar boven

Verificatie op basis van een paspoort

Verificatie op basis van passpoort is een gecentraliseerde verificatieservice van Microsoft die één aanmeldings- en kernprofielservice biedt voor lidsites. Zie de volgende Microsoft-website voor meer informatie:

Paspoortverificatieprovider. Terug naar boven

Windows-verificatie

ASP.NET maakt gebruik van Windows-verificatie in combinatie met iis-verificatie (Microsoft Internet Information Services). Verificatie wordt uitgevoerd door IIS op drie manieren: basisverificatie, digest of geïntegreerde Windows-verificatie. Wanneer IIS-verificatie is voltooid, gebruikt ASP.NET de geverifieerde identiteit om toegang te verlenen. Zie de volgende resources voor meer informatie:

Windows-verificatieprovider

323176 Windows-verificatie en -autorisatie implementeren in ASP.NET

Terug naar boven

Vergunning

Het doel van autorisatie is om te bepalen of aan een identiteit het type toegang moet worden verleend dat door een resource wordt aangevraagd. Er zijn twee fundamentele manieren om toegang tot een bepaalde resource te autoriseren:

  • Bestandsautorisatie

    Bestandsautorisatie wordt uitgevoerd door de
    FileAuthorizationModule en is actief wanneer u Windows-verificatie gebruikt. Er wordt een ACL-controle (Access-Control-List) uitgevoerd van het .aspx- of .asmx-handlerbestand om te bepalen of een gebruiker toegang moet hebben. Toepassingen kunnen ook imitatie gebruiken om resourcecontroles uit te voeren op resources waartoe ze toegang hebben. Zie de volgende Microsoft-website voor meer informatie over imitatie:

    ASP.NET imitatie.

  • URL-autorisatie

    URL-autorisatie wordt uitgevoerd door de
    URLAuthorizationModule, die gebruikers en rollen toewijst aan delen van de URL-naamruimte. In deze module worden zowel positieve als negatieve autorisatieverklaringen geïmplementeerd. De module kan dus worden gebruikt om selectief toegang tot willekeurige delen van de URL-naamruimte toe te staan of te weigeren voor bepaalde sets, gebruikers of rollen.

Zie de volgende Microsoft-websites voor meer informatie over autorisatie:

autorisatie ASP.NET

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×