INFO : Présentation de la sécurité ASP.NET

Traductions disponibles Traductions disponibles
Numéro d'article: 306590 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F306590
Cet article fait référence à Microsoft .net suivant Bibliothèque de classes Framework suivants :
  • System.Web.Security
  • System.Web.principal
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article fournit une introduction aux ASP.NET sécurité.

Pour des présentations de ASP.NET supplémentaires, reportez-vous à la suivante Article de la Base de connaissances Microsoft :
305140 INFO : Feuille de route ASP.NET

Plus d'informations

ASP.NET vous donne davantage de contrôle pour implémenter la sécurité pour votre application. Sécurité ASP.NET fonctionne conjointement avec Microsoft Internet Information Services Sécurité (IIS) et inclut les services d'authentification et d'autorisation à implémenter le modèle de sécurité ASP.NET. ASP.NET inclut également un rôle de base fonctionnalité de sécurité que vous pouvez implémenter pour les deux fenêtres de Microsoft et comptes d'utilisateurs non Windows.

Cet article est divisé sections :

Flux de sécurité d'une demande

Les étapes suivantes décrivent la séquence des événements lorsqu'un client effectue une demande :
  1. Un client demande une page .aspx qui réside sur un IIS serveur.
  2. Identification du client est transmise à IIS.
  3. IIS authentifie le client et transmet l'authentifié jeton en même temps que la demande du client au processus de travail ASP.NET.
  4. Basée sur le jeton authentifié à partir d'IIS et le paramètres de configuration de l'application Web, ASP.NET décide s'il faut emprunter l'identité d'un utilisateur sur le thread qui traite la requête. Dans un texte distinct. différence entre Microsoft Active Server Pages (ASP) et ASP.NET, ASP.NET pas plus emprunte l'identité l'utilisateur authentifié par défaut. Pour activer l'emprunt d'identité, Vous devez définir l'attribut impersonate de la section identité dans le fichier Web.config sur true.
Pour plus d'informations sur le flux de sécurité, reportez-vous à la rubrique suivante dans le Kit de développement logiciel (SDK) de.NET Framework documentation :
Flux de données ASP.NET
http://msdn.Microsoft.com/en-us/library/xa68twcb (vs.71) .aspx
Pour plus d'informations sur l'emprunt d'identité dans ASP.NET, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
306158 INFO : Implémentation de l'emprunt d'identité dans une Application ASP.NET

Paramètres de Configuration associés

IIS conserve les paramètres de configuration liés à la sécurité dans IIS métabase. Cependant, ASP.NET gère la sécurité (et autres) configuration paramètres dans les fichiers de configuration de langage XML (Extensible Markup). Bien que cela plus généralement, simplifie le déploiement de votre application à partir d'une sécurité point de vue, le modèle de sécurité adopté par votre application nécessite la configuration correcte de la métabase IIS et votre application ASP.NET par l'intermédiaire de son fichier de configuration (Web.config).

Les éléments suivants sections de configuration liées à la sécurité ASP.NET :

Authentification

L'authentification est le processus par lequel vous obtenir identification informations d'identification telles que le nom de l'utilisateur et mot de passe et valider ces informations d'identification auprès d'une autorité.

ASP.NET fournit une authentification quatre fournisseurs :

Authentification par formulaires

L'authentification par formulaires désigne un système dans lequel non authentifié les demandes sont redirigées vers un formulaire HTML Hypertext Markup Language () dans lequel les utilisateurs tapent leurs informations d'identification. Après que l'utilisateur fournit des informations d'identification et envoie le formulaire, l'application authentifie la demande et les problèmes de système une ticket d'autorisation sous la forme d'un cookie. Ce cookie contient le informations d'identification ou une clé pour réacquérir l'identité. Les demandes suivantes à partir de la navigateur inclut automatiquement le cookie.

Pour plus d'informations sur L'authentification par formulaires, reportez-vous à la rubrique suivante dans le Kit de développement.NET Framework documentation :
Le fournisseur d'authentification de formulaires
http://msdn.Microsoft.com/en-us/library/907hb5w9 (vs.71) .aspx
Pour authentification des formulaires plus d'informations dans ASP.NET, cliquez sur l'article numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
301240 Comment : Mettre en ?uvre de la base de formulaires l'authentification dans votre Application de ASP.NET à l'aide de C# .net

Authentification Windows

Dans l'authentification Windows, IIS effectue l'authentification, et le jeton authentifié est transmis au processus de travail ASP.NET. L'avantage de l'utilisation de Windows l'authentification est qu'il nécessite un minimum de codage. Il pouvez que vous souhaitez utiliser Windows authentification d'emprunter l'identité du compte d'utilisateur Windows IIS authentifie avant de transmettre la demande à ASP.NET.

Pour plus d'informations à propos de l'authentification Windows, reportez-vous à la rubrique suivante dans .net Documentation du SDK Framework :
Le fournisseur WindowsAuthenticationModule
http://msdn.Microsoft.com/en-us/library/907hb5w9 (vs.71) .aspx

Authentification Passport

L'authentification Passport est un service d'authentification centralisé, fourni par Microsoft qui offre une ouverture de session unique et un noyau de services de profil pour les sites membres. L'authentification Passport est généralement utilisée lorsque vous avez besoin ouverture de session unique sur capacité dans plusieurs domaines.

Pour plus d'informations informations sur l'authentification Passport, reportez-vous à la rubrique suivante dans la Documentation du Kit de développement.NET Framework :
Le fournisseur d'authentification Passport
http://msdn.Microsoft.com/en-us/library/f8e50t0f (vs.71) .aspx

Authentification par défaut

L'authentification par défaut est utilisée lorsque vous ne souhaitez pas que toute sécurité sur votre application Web ; l'accès anonyme est requis pour ce type de sécurité fournisseur. Parmi tous les fournisseurs d'authentification, l'authentification par défaut fournit performances optimales pour votre application. Ce fournisseur d'authentification est également utilisé lorsque vous utilisez votre propre module de sécurité personnalisé.

Autorisation

L'autorisation est le processus qui vérifie si l'authentifié utilisateur a accès aux ressources demandées.

ASP.NET offre la fournisseurs d'autorisation suivants :

FileAuthorization

La classe FileAuthorizationModule procède à l'autorisation de fichier et est active lorsque vous utilisez Authentification Windows. Elle est utilisée pour la réalisation de vérifications de contrôle d'accès Windows Listes pour déterminer si un utilisateur doit avoir accès.

UrlAuthorization

La classe UrlAuthorizationModule procède à l'autorisation de Uniform Resource Locator (URL), qui contrôle l'autorisation basée sur l'espace de noms URI. Espaces de noms URI peut être assez différent des chemins de dossier et fichier physiques que les autorisations NTFS Utilisez.

UrlAuthorizationModule implémente les assertions d'autorisation positives et négatives ; Autrement dit, vous pouvez utiliser le module pour accorder ou de refuser l'accès à parties arbitraires de l'espace de noms URI pour les utilisateurs, rôles (par exemple, le Gestionnaire, testeurs et administrateurs) et des verbes (tels que GET et POST).

Pour plus d'informations sur les autorisations dans ASP.NET, reportez-vous à la rubrique suivante dans la documentation du Kit de développement.NET Framework :
Autorisation ASP.NET
http://msdn.Microsoft.com/en-us/library/wce3kxhd (vs.71) .aspx

Role-Based Security

Sécurité basée sur les rôles dans ASP.NET est similaire à role-based sécurité par Microsoft COM + et Microsoft Transaction Server (MTS), Bien qu'il existe des différences importantes. Sécurité basée sur les rôles dans ASP.NET n'est pas limité à des comptes et groupes Windows. Par exemple, si l'authentification Windows et l'emprunt d'identité est activée, l'identité de l'utilisateur est une identité Windows (User.Identity.Name = « DOMAINE\nom_utilisateur »). Vous pouvez vérifier si des identités l'appartenance à des rôles spécifiques et limiter l'accès en conséquence. Pour exemple :

Visual Basic .net Code
If User.IsInRole("BUILTIN\Administrators") Then
   Response.Write("You are an Admin")
Else If User.IsInRole("BUILTIN\Users") then
   Response.Write("You are a User")
Else
   Response.Write("Invalid user")
End if
				
Code Visual C# .net
if ( User.IsInRole("BUILTIN\\Administrators"))
   Response.Write("You are an Admin");
else if (User.IsInRole("BUILTIN\\Users"))
   Response.Write("You are a User");
else
   Response.Write("Invalid user");
				
Si vous utilisez l'authentification par formulaires, les rôles ne sont pas affectées à la utilisateur authentifié ; Vous devez le faire par programme. Pour assigner des rôles à la authentification utilisateur, utilisez l'événement OnAuthenticate du module d'authentification (c'est-à-dire les formulaires module d'authentification dans cet exemple) pour créer un objet GenericPrincipal et l'affecter à la propriété User de l'objet HttpContext. Le code suivant illustre Ceci :

Visual Basic .net Code
Public Sub Application_AuthenticateRequest(s As Object, e As EventArgs)
   If (Not(HttpContext.Current.User Is Nothing)) Then
      If HttpContext.Current.User.Identity.AuthenticationType = "Forms" Then
         Dim id as System.Web.Security.FormsIdentity = HttpContext.Current.User.Identity
         Dim myRoles(3) As String
         myRoles(0)= "managers"
         myRoles(1)= "testers"
         myRoles(2)= "developers"
         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles) 
      End If
   End If
End Sub
				
Code Visual C# .net
public void Application_AuthenticateRequest(Object s, EventArgs e)      
{
   if (HttpContext.Current.User != null)
   {
      if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" ) 
      {
         System.Web.Security.FormsIdentity id = HttpContext.Current.User.Identity;
         String[] myRoles = new String[3];
         myRoles[0]= "managers";
         myRoles[1]= "testers";
         myRoles[2]= "developers";
         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles);
      }
   }
} 
				
Pour vérifier si l'utilisateur est dans un rôle spécifique et restreindre l'accès en conséquence, utilisez le code suivant (ou similaire) dans vos pages .aspx :

Visual Basic .net Code
If User.IsInRole("managers") Then
   Response.Write("You are a Manager")
Else If  User.IsInRole("testers") Then
   Response.Write("You are a Tester")
Else If User.IsInRole("developers") Then
   Response.Write("You are a Developer")
End if
				
Code Visual C# .net
if (User.IsInRole("managers"))
   Response.Write("You are a Manager");
else if (User.IsInRole("testers"))
   Response.Write("You are a Tester");
else if (User.IsInRole("developers"))
   Response.Write("You are a Developer");
				
Pour plus d'informations, cliquez sur l'article numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
306238 Comment : Mettre en ?uvre basée sur le rôle de sécurité avec l'authentification basée sur les formulaires dans votre Application de ASP.NET à l'aide de Visual Basic .net
Pour plus d'informations sur la sécurité basée sur les rôles, consultez le site à la rubrique suivante dans la documentation du Kit de développement.NET Framework :
Role-Based Security
http://msdn.Microsoft.com/en-us/library/52kd59t0 (vs.71) .aspx

Références

Pour plus d'informations sur les consignes de sécurité ASP.NET, consultez le livre blanc MSDN suivant :
L'authentification dans ASP.NET : conseils de sécurité .net
http://msdn.Microsoft.com/en-us/library/ms978378.aspx
Pour obtenir des informations plus générales sur ASP.NET, reportez-vous à la groupe de discussion MSDN suivant :
Microsoft.public.dotnet.Framework.Aspnet
Pour plus d'informations, cliquez sur l'article numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
311094 BOGUE : Message d'erreur « Exception » lors de l'emprunt d'identité lire la Configuration de comptes
306359 PRB : Request.ServerVariables renvoie une chaîne vide dans ASP.NET
313091 Comment : Créer des clés à l'aide de Visual Basic .net pour une utilisation dans l'authentification par formulaires
313116 PRB : Les demandes d'authentification de formulaires ne sont pas dirigés vers loginUrl Page
Pour plus d'informations, consultez les ouvrages suivants :
Article, Douglas J. Conception d'Applications de Microsoft ASP.NET. Microsoft Press, 2001.

Esposito, Dino.Création de Solutions Web avec ASP.NET et ADO.NET. Microsoft Press, 2001.

Propriétés

Numéro d'article: 306590 - Dernière mise à jour: jeudi 28 juin 2012 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Mots-clés : 
kbproductlink kbarttyperoadmap kbconfig kbinfo kbsecurity kbweb kbmt KB306590 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 306590
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com