Licence Metinet - IUT LYON 1
Concepteur et Gestionnaire de Sites Internet

 

Auteur: Christian ALLEMAND

Contenu

Cours

1.1 – Navigateur et Serveur Web

1.1.1 – Le navigateur

1.1.2 – Le serveur Web

1.1.3 – Requête

1.2 – Le principe d’ASP.NET

1.2.1 – Le principe d’une page statique

1.2.2 – Le principe général d’une page dynamique

1.2.3 – Le principe d’une page dynamique en ASP.NET

1.3 – Création d’un site Web avec Visual Studio 2010

1.3.1 – Internet Information Services

1.3.2 – Les 2 types de projet pour le Web

1.3.3 – Création du projet

1.3.4 – Choix du type de serveur Web

1.3.5 – Création de la première page Web

1.4 –Configuration de l’application web

1.4.1 – Le fichier web.config

1.4.2 - Les paramètres d’application

1.4.3 – L’éditeur de configuration

1.5 – Internet Information Services

1.5.1 - Les Pools d’applications

1.5.2 – Sites

1.5.3 – IIS - Rubrique ASP.NET

1.5.4 – IIS - Rubrique Gestion

1.5.5 – IIS - Rubrique IIS

 

 

Cours

1.1 – Navigateur et Serveur Web

1.1.1 – Le navigateur

Un navigateur est une application installée sur le poste d’un internaute et qui permet d’accéder aux ressources d’un serveur Web.

Il reçoit les données transmises par le serveur Web (sous forme de code HTML, CSS, javascript…) puis il exécute ces codes afin d’afficher la page correspondante.

Il existe plusieurs navigateurs différents (IE, Firefox, Safari, …) et chacun d’eux interprète le code transmis par le serveur Web à sa manière. Il est donc fréquent d’avoir un rendu différent suivant le navigateur utilisé et la qualité du code transmis.

1.1.2 – Le serveur Web

Le serveur Web héberge les ressources standard nécessaires au site Web (HTML, CSS, images, sons, …) ainsi que les pages de code dynamique (page ASPX en C# ou VB par exemple).

Le serveur Web reçoit les requêtes transmises par le navigateur client, exécute les pages ASPX (dans le cas d’un site en ASP.NET), et renvoie le résultat au navigateur sous forme de code HTML, CSS, javascript…

1.1.3 – Requête

Exemple des étapes successives pour l’affichage d’un formulaire qui contient des champs à remplir et un bouton pour envoyer ces valeurs au serveur web.

Requete HTTP

 

1.2 – Le principe d’ASP.NET

1.2.1 – Le principe d’une page statique

Le but d’un serveur Web est de répondre à la demande d’un navigateur en lui envoyant une page demandée au format HTML.

Le principe d’une page statique

 

Dans le cas ci-dessus, le serveur reçoit une demande concernant une page d’extension .html

Il transmet cette demande au gestionnaire en charge de traiter ce type d’extension. Ce dernier lit le contenu du fichier mapage.html et le renvoie au navigateur.

Le code HTML contenu dans mapage.html suffit à afficher le résultat souhaité. Il s’agit d’une page statique.

 

1.2.2 – Le principe général d’une page dynamique

Si l’on souhaite maintenant faire afficher l’heure actuelle dans le navigateur client, le serveur va devoir créer le code HTML dynamiquement à chaque demande du navigateur. L’heure ne peut pas être écrite une fois pour toutes dans un fichier !

Le principe général d’une page dynamique

1.2.3 – Le principe d’une page dynamique en ASP.NET

Dans une application ASP.NET, les pages portent l’extension .aspx

Le principe d’une page dynamique en ASP.NET

Une page ASP.NET est représentée sous la forme d’une classe partielle.

Dans une application Web, elle est par défaut composée de 2 fichiers distincts :

  • Un fichier d’extension .aspx

Ce fichier constitue la partie Design de la page. Il contient le code HTML et les éventuels scripts qui pourront être exécutés coté client.

Dans notre exemple, il pourrait ressembler à ceci :

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PageHeure.aspx.cs" Inherits="test.PageHeure" %>

 

<html>

  <head runat="server">

    <title></title>

  </head>

  <body>

    <form id="form1" runat="server">

      Bonjour!<br />

      Il est <asp:Label ID="LbHeure" runat="server"></asp:Label>

    </form>

  </body>

</html>

 

  • Un fichier Code Behind d’extension .aspx.vb (ou .aspx.cs pour un site développé en C#)

Ce fichier contient le code qui est exécuté sur le serveur. Ce code sera compilé en code IL lors de son premier appel. Le code IL est enfin exécuté par le CLR et le résultat est renvoyé au navigateur client.

Dans notre exemple, il pourrait ressembler à ceci :

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

namespace test

{

  public partial class PageHeure : System.Web.UI.Page

  {

    protected void Page_Load(object sender, EventArgs e)

    {

      FillTime();

    }

 

    void FillTime()

    {

      LbHeure.Text = DateTime.Now.ToString("t");

    }

  }

}

 

Il est possible de grouper ces 2 fichiers en un seul (dans le fichier .aspx). Toutefois, l’avantage de garder ces 2 fichiers distincts est de permettre à un designer de travailler sur la partie graphique de la page et à un développeur de travailler sur la partie codage.

 

Avec ILDASM, on peut observer le code IL obtenu pour cette page.

Par exemple, code IL généré pour la fonction FillTime() :

.method private hidebysig instance void  FillTime() cil managed

{

  // Code size       32 (0x20)

  .maxstack  3

  .locals init ([0] valuetype [mscorlib]System.DateTime CS$0$0000)

  IL_0000:  nop

  IL_0001:  ldarg.0

  IL_0002:  ldfld      class [System.Web]System.Web.UI.WebControls.Label testDivs.PageHeure::LbHeure

  IL_0007:  call       valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::get_Now()

  IL_000c:  stloc.0

  IL_000d:  ldloca.s   CS$0$0000

  IL_000f:  ldstr      "t"

  IL_0014:  call       instance string [mscorlib]System.DateTime::ToString(string)

  IL_0019:  callvirt   instance void [System.Web]System.Web.UI.WebControls.Label::set_Text(string)

  IL_001e:  nop

  IL_001f:  ret

} // end of method PageHeure::FillTime

 

Ainsi, de la même façon que nous l’avons vu dans les cours sur le module .NET, il nous est possible de contrôler le code IL généré à partir de notre code source. Cela peut être intéressant dans certains cas d’optimisation.

1.3 – Création d’un site Web avec Visual Studio 2010

Visual Studio propose plusieurs modèles de projets permettant de créer un site Web.

Pour chacun d’entre eux, il est possible d’utiliser le serveur Web local (IIS) ou le serveur Web intégré dans Visual studio.

 

1.3.1 – Internet Information Services

IIS représente le centre de contrôle du serveur Web sur lequel il est installé.

Sous Windows Web Server 2008 R2 (et sous Windows 7), nous disposons de IIS 7.5.

Internet Information Services

Afin de pouvoir utiliser notre poste en tant que serveur Web local, nous devons nous assurer de sa présence.

Si ce n’est pas déjà fait, IIS s’installe depuis le panneau de configuration de Windows,

Ajout/suppression de programmes,

Activer des fonctionnalités Windows ,

Services Internet (IIS),

Outils d’administration Web et Services World Wide Web.

 

Lorsque ces fonctionnalités seront installées, nous pourrons créer un raccourci vers IIS sur notre bureau en recherchant %windir%\system32\inetsrv\InetMgr.exe

 

 

 

 

 

 

 

 

1.3.2 – Les 2 types de projet pour le Web

Visual studio propose 2 types de projets pour créer un site Web.

Chacun d’eux possède ses avantages et ses inconvénients.

La rubrique suivante de MSDN vous aidera à faire votre choix en fonction de vos besoins :

http://msdn.microsoft.com/fr-fr/library/dd547590.aspx

1.3.2.1 - Projet Site Web

Dans ce type de projet, il n’existe pas de fichier projet. Tous les fichiers contenus dans le projet sont inclus dans le site.

Le code source est généralement compilé par ASP.NET lors de la première demande qui suit l’installation ou la mise à jour.

Par défaut, aucun espace de nom n’est ajouté aux classes.

On déploie le site soit par copie des fichiers sources, soit par copie des assemblys précompilés.

1.3.2.2 - Projet Application Web

Ce type de projet gère les fichiers projets. Il permet de gérer facilement les dépendances inter-projets.

Le code est compilé sur le serveur de développement.

Par défaut, des espaces de noms sont ajoutés aux classes.

On déploie le site par copie de l’assembly précompilée

Ce type de projet permet une plus grande intégration d’outils de déploiement dans IIS.

 

ASP.NET a été pensé pour implémenter facilement la séparation des couches.

Dans l’industrie, que ce soit pour des applications WinForms ou des applications Web, on utilise fréquemment  l’architecture 3-tiers qui consiste à scinder les applications de la manière suivante :

  • Une couche accès aux données
  • Une couche métier qui définit les classes propres à l’entreprise
  • Une couche présentation (ou interface graphique)

 

Dans le cadre de nos cours sur ASP.NET, nous serons amenés à créer des applications contenant plusieurs projets représentant ces couches.

Nous utiliserons donc le type de projet Application Web qui me parait plus adapté à ce type de configuration.

1.3.3 – Création du projet

Pour créer notre premier un site, nous allons choisir un projet de type Application Web ASP.NET vide que nous nommerons WebSite1.

Pour cela, ouvrir le menu Fichier, puis Nouveau, puis Projet …

On choisit ensuite le langage à utiliser Visual Basic ou Visual C#, puis dans les modèles proposés, on choisit Application Web ASP.NET vide.

Création du projet sous VS2010

On choisit ensuite le nom de notre application Web : WebSite1

Par défaut, la solution porte le même nom mais on peut choisir un nom de solution différent.

On choisit ensuite l’emplacement dans lequel sera placé le répertoire de notre solution WebSite1 :

Dans notre exemple, D:\Sites Web\tmp\

 

Visual studio crée par défaut le fichier projet et le fichier web.config que l’on voit dans l’explorateur de solutions :

Le fichier web.config, au format XML, est utilisé pour gérer la configuration du site web.

Nous l’étudierons par la suite.

Explorateur de solutions asp.net

1.3.4 – Choix du type de serveur Web

Le choix du serveur Web se fait en affichant les propriétés du projet (double-clic sur le fichier My Project dans l’explorateur de solutions), puis en ouvrant l’onglet Web.

 

1.3.4.1 – Serveur Visual Studio Development

Par défaut, VS2010 sélectionne le serveur Web intégré (VSD)

Ce serveur est à utiliser si vous ne souhaitez pas installer IIS ou IIS Express sur votre poste.

Il réagit assez fidèlement au comportement d’IIS mais peut cacher certaines erreurs pouvant apparaitre sur un IIS de production.

Serveur web intégré VS2010

1.3.4.2 – Serveur Web IIS local

Dans cas VS utilise le serveur IIS installé sur le poste de développement : IIS complet ou IIS Express (à noter que l’installation d’IIS Express nécessite Visual Studio 2010 Service Pack 1).

Serveur Web IIS local VS2010

Par défaut, VS vous propose un nom d’URL basée sur le nom de votre projet. Vous pouvez modifiez ce nom si vous souhaitez accéder à votre application Web par une autre URL.

Cliquez ensuite sur Créer un répertoire virtuel. Comme son nom l’indique, cela va créer un répertoire virtuel sur votre serveur Web local.

Dans notre exemple, nous utiliserons le serveur Web IIS local.

 

1.3.4.3 – Serveur Web personnalisé

Dans cas VS utilise le serveur IIS dont vous donnez le nom ou l’adresse IP.

Le répertoire virtuel WebSite1 aura dû être créé sur ce serveur auparavant.

1.3.5 – Création de la première page Web

Jusqu’à présent, nous avons créé la structure de notre site Web, mais il est vide et on ne peut donc pas naviguer sur son contenu.

En effet, en tapant http://localhost/website1, nous obtenons une erreur (http 403.14) qui signifie que nous n’avons aucune page par défaut à afficher.

Nous allons donc ajouter la première page.

 

Pour ajouter un nouvel élément nous avons deux solutions :

  • Dans le menu Site Web, cliquer sur Ajouter un nouvel élément

Ou

  • Dans l’explorateur de solutions, clic droit sur  D:\tmp\WebSite1\, puis Ajouter un nouvel élément. A noter que l’on peut créer des dossiers sous la racine du site et ajouter un nouvel élément en faisant un clic droit sur n’importe quel dossier du projet.

 

Nous n’avons plus qu’à choisir le type d’élément que nous souhaitons ajouter, dans notre cas nous allons ajouter un Web Form que nous nommerons Home.aspx.

Il ne reste plus qu’à cliquer sur Ajouter.

Création de la première page Web

Dans l’explorateur de solutions, nous pouvons controler la présence de notre nouvelle page :

explorateur de solutions

En double-cliquant sur Home.aspx, nous accédons à la partie Design de cette page que Visual Studio a pré-rempli à partir du modèle d’élément Web Form :

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Home.aspx.vb" Inherits="WebSite1.Home" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

    </div>

    </form>

</body>

</html>

 

 

Pour accéder à la partie Code behind de cette page, on fait un clic droit sur son nom (dans l’explorateur de solutions) et on choisit Afficher le code.

Cela nous donne le contenu de Home.aspx.vb

Public Class Home

  Inherits System.Web.UI.Page

 

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

 

  End Sub

 

End Class

 

 

Coté design, on peut observer que VS2010 a préparé quelques lignes de code de base.

La 1ere ligne est une directive de page (<% @ Page)

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Page1.aspx.cs" Inherits="Page1" %>

Elle nous indique les éléments suivants :

Language="C#" -> il s’agit du langage utilisé dans la partie Code Behind (on pourrait avoir VB)

AutoEventWireUp="true" -> signifie que les événements déclenchés par les controles seront automatiquement pris en compte.

CodeFile= "Page1.aspx.cs" -> indique l’emplacement du fichier Code Behind correspondant

Inherits="Page1" -> indique que cette page est liée à la classe Page1 définie coté serveur

 

La ligne suivante concerne le DOCTYPE. Elle est bien sur modifiable afin de choisir une autre version du HTML.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

Les lignes qui suivent constituent les blocs standards HTML de description d’une page.

Nous allons ajouter notre texte Bonjour, ceci est mon premier site en ASP.NET !

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Page1.aspx.cs" Inherits="Page1" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

      Bonjour, ceci est mon premier site en ASP.NET !

    </div>

    </form>

</body>

</html>

 

Nous pouvons maintenant naviguer sur notre site en cliquant sur le menu Déboguer, Démarrer le débogage ou plus simplement avec la touche F5 du clavier.

Au premier lancement, il est possible que nous obtenions le message suivant. Valider pour modifier le fichier Web.config que nous étudierons par la suite.

Modification parametre de debogage

Le résultat dans notre navigateur :

résultat premiere page asp.net dans notre navigateur

1.4 –Configuration de l’application web

1.4.1 – Le fichier web.config

C’est le premier élément qui est ajouté dans un nouveau projet web.

Il doit être placé à la racine du site.

Ce fichier, au format XML, est utilisé pour gérer la configuration du site web.

 

Il interagit pour la plupart des paramètres de façon bidirectionnelle avec IIS.

C’est-à-dire qu’une modification effectuée depuis IIS, selon son type,  viendra s’inscrire dans le fichier web.config du site concerné, et une modification apportée dans ce fichier apparaitra dans la rubrique correspondante d’IIS.

 

Il peut définir entre autres:

  • Les gestionnaires de sections de configuration,
  • Les paramètres d’application,
  • Les gestionnaires et modules http,
  • Les assemblys contenant des contrôles (tels que <asp :…>),
  • Les assemblys référencés,
  • Les namespaces, …

 

Par défaut, l’application Web hérite des paramètres indiqués dans les fichiers Machine.config et web.config

Ces 2 fichiers sont placés dans %SystemRoot%\Microsoft.NET\Framework\<version>\CONFIG et ils s’appliquent à tous les sites hébergés sur la machine pour la version du framework indiqué.

 

Le fichier web.config présent dans notre site web permet de modifier ou d’ajouter des paramètres spécifiques à notre application.

A chaque modification du fichier web.config, le site est recompilé afin de prendre en compte le contenu de ce fichier.

 

1.4.2 - Les paramètres d’application

Les paramètres d’application sont des variables de portée application.

Elles sont généralement utilisées pour regrouper dans le fichier de configuration tous les valeurs globales utilisées dans le code de nos pages (URLs, API Key, nom de serveur mail, …)

 

Un paramètre d’application est représenté par une paire Key / Value.

Key contient le nom du paramètre, et value contient la valeur du paramètre (type String).

 

Pour créer des paramètres d’application, on peut soit les placer directement dans le fichier web.config, soit les placer dans un fichier XML indépendant (exemple : user.config) que l’on crée généralement à la racine du site.

Dans le fichier web.config, on indique le nom de ce fichier dans l’attribut file de la section <appSettings> :

Web.config:

<configuration>

  <appSettings file="user.config">

    <add key="monParam1" value="maValeur1" />

  </appSettings>

</configuration>

 

Dans le fichier user.config, on crée une section appSettings avec nos valeurs personnalisées :

User.config

<appSettings>

  <add key="autreParam1" value="autreValeur1" />

</appSettings>

 

Les paramètres d’application peuvent ensuite être lus depuis le code behind :

Imports System.Configuration

Public Class Home

  Inherits System.Web.UI.Page

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    Dim s1 As String = ConfigurationManager.AppSettings("monParam1")

    Response.Write("monParam1=" & s1 & "<br/>")

    Dim s2 As String = ConfigurationManager.AppSettings("autreParam1")

    Response.Write("autreParam1=" & s2 & "<br/>")

  End Sub

End Class

Lançons maintenant notre application WebSite1 avec F5 :

Execution application Web

1.4.3 – L’éditeur de configuration

La configuration d’un site Web peut s’effectuer de 3 façons différentes :

  • Modification du fichier web.config
  • Editeur de configuration de IIS
  • Outil d’administration de site web de Visual Studio

 

Comme il n’est pas facile de mémoriser tous les paramètres de ce fichier, Visual Studio propose un utilitaire graphique permettant de gérer les principaux réglages de base (Menu projet, Configuration ASP.NET).

 

Afin de pouvoir utiliser cet éditeur de configuration, il sera peut-être nécessaire de faire un réglage dans IIS.

Se positionner sur le site (exemple : Default Web Site , WebSite1), puis rubrique Gestion, puis Editeur de configuration

 

Puis indiquer user.config comme valeur du champ file :

Editeur de configuration asp.net

L’outil d’administration s’ouvre alors dans un navigateur :

administration de site web

1.5 – Internet Information Services

IIS représente le centre de contrôle de tous les sites web hébergés sur la machine.

Internet Information Services

1.5.1 - Les Pools d’applications

Un pool d’application permet de définir le contexte d’exécution d’une ou plusieurs applications Web.

 

Chaque pool d’application définit la version du Framework à utiliser et le mode pipeline utilisé.

Les pools d'application sous iis

Une application peut utiliser un pool d’application partagé avec d’autres applications ou utiliser son propre pool.

Création ou modification d’un pool d’application :

On indique la version du Framework utilisée (le choix se fait parmi les versions installées sur le poste)

On indique le mode de pipeline :

Classique : C’est le mode de fonctionnement d’IIS 6.0.

Dans ce cas, IIS utilise des pipelines distincts de traitement des demandes IIS et ASP.NET pour traiter les demandes.

L'un est destiné aux filtres ISAPI de code natif (et aux composants d'extension), et l'autre aux composants d'application de code managé, tels qu'ASP.NET.

Le mode classique maintient la compatibilité descendante avec les versions antérieures d'IIS.

Intégré : IIS utilise un pipeline intégré unifié de traitement des demandes IIS et ASP.NET pour traiter les demandes.

Le pipeline intégré offre de meilleures performances.

On ne peut l’utiliser qu’à partir de la version 2.0 du Framework .NET

 

  1. ISAPI : Internet Server Application Programming Interface

Un peu comme pour CGI, ISAPI prend en charge la création d’une réponse au format HTML lors de demandes nécessitant l’exécution d’une application ou d’un module sur le serveur.

Les versions antérieures à ISAPI 6 sont exécutées dans le même espace de travail qu’IIS. Ceci évite l'appel à de nombreuses fonctions interprocessus et améliore donc les performances. En revanche, la défaillance d’une application ISAPI entraine le plantage du serveur IIS.

Depuis IS 6.0, une application ISAPI peut s'exécuter dans un emplacement différent de celui d’IIS

1.5.2 – Sites

Définit l’arborescence des sites hébergés par IIS.

Default Site Web

Default Web Site représente le site par défaut accessible lorsque l’on accède au serveur Web et qu’aucun autre site n’est défini.

Dans le site par défaut, on trouve aussi toutes les applications que l’on souhaite exécuter en tant que site Web local.

Cela est utile pour tester des applications Web avant de les placer sur un serveur de production.

L’application WebSite1 que nous avons créé précédemment  a été placée sous le site par défaut automatiquement par Visual Studio.

Autres sites

Au même niveau que le site par défaut, on trouve les sites accessibles de l’extérieur par l’intermédiaire d’un nom de domaine. Ce nom de domaine aura dû être préalablement enregistré pour être mappé vers l’adresse IP du serveur.

 

Cette configuration se fait par un clic droit sur le nom du site, puis Modifier les liaisons :

Paramètres de base

Ce réglage est accessible en sélectionnant le site concerné dans la liste des sites, puis en cliquant sur Paramètres de base de la fenêtre Actions de IIS :

Ils permettent de modifier le répertoire physique de l’application web, ainsi que son pool d’application et son type d’authentification

Parcourir*.80 (http)

Vous permet de naviguer sur le site sélectionné dans le navigateur par défaut.

Cette option est très utile pendant une phase de paramétrage du site depuis IIS, car vous pouvez effectuer vos réglages et visualiser le résultat directement depuis IIS.

 

Exporter / Importer une application

Cette fonctionnalité permet de créer un package sous forme de fichier .zip, contenant toute l’arborescence physique de l’application Web.

Ce fichier peut ensuite être copié sur un autre serveur IIS. En utilisant la fonctionnalité Importer une application, le site web correspondant au contenu du package est alors créé sur ce nouveau serveur.

1.5.3 – IIS - Rubrique ASP.NET

Les rubriques d’IIS seront vues en détail lors des cours correspondant.

La liste ci-dessous ne donne qu’un aperçu des rubriques accessibles depuis IIS.

http://technet.microsoft.com/fr-fr/library/cc754705%28v=ws.10%29.aspx

 

Chaines de connexion

Ce module permet de créer les chaines de connexion afin de pouvoir accéder aux bases de données utilisées par l’application Web.

Ex : Server=localhost;Database=base1;User ID=user1;Password=pwd1

Clé d’ordinateur

Facultatif. Utilisé généralement pour sécuriser l’application

Permet de configurer les clés de chiffrement et de déchiffrement utilisées pour protéger les données d'authentification par formulaire et les données de l'état d'affichage au niveau de la page.

On peut utiliser une des 4 méthodes proposées :

SHA1 par défaut : le plus utilisé de nos jours, AES, MD5 ou TripleDES

Les clés de chiffrement personnalisées sont placées dans le fichier web.config dans l’élément machineKey.

<machineKey validationKey="AC8C23C7078A0B58FE…" decryptionKey="D010EB92A56E1D…" validation="SHA1" decryption="AES" />

Compilation

Différents paramètres utilisés pour la compilation de l’application. On retrouve ces paramètres dans les propriétés du projet sous Visual Studio.

Nombre de recompilations

nombre de recompilations dynamiques de ressources avant le redémarrage de l'application

Pragmas de ligne d'URL [urlLinePragmas]

Option Explicit

True : oblige à déclarer les variables (Dim en VB) avant de pouvoir les utiliser)

Option Strict

True : refuse les conversions implicites qui pourraient entraîner des pertes de données

Traitement par lots

Utilisés pour les projets de type Site Web. Lors du premier appel d’une page ASP.NET non compilée, permet de compiler toutes les pages du répertoire en segments pour améliorer les performances disque et mémoire.

Courrier électronique

Adresse mail d’envoi et serveur utilisé pour l’envoi de mails depuis l’application Web.

Windows : Utilise l'identité de l'application afin de s’identifier auprés d’un éventuel un serveur de relaying.

Etat de session

Spécifie de quelle façon est géré l’état de session ainsi que les cookies.

Globalisation

Permet de gérer les paramètres liés à la globalisation .NET pour une application qui utilise des fichiers de ressources spécifiques à chaque culture.

Niveaux de confiance .NET

Permet d’indiquer le niveau de confiance que vous souhaitez donner à l’application web.

En fonction de ce niveau de confiance, l’application se verra refuser l’autorisation d’effectuer certaines actions.

Total (aussi appelé Full trust)

L’application a accès à toutes les ressources qui dépendent de la sécurité de l’OS.

Elevé (HighTrust)

Interdiction des opérations suivantes :

  • Appeler du code non managé ou des composants de type service
  • Ecriture dans le journal des événements
  • Accéder aux sources de données ODBC, OleDb ou Oracle.

Moyen (MediumTrust)

Niveau élevé + Interdiction des opérations suivantes :

  • Accès aux fichiers hors du répertoire de l’application Web
  • Accès au registre
  • Appels réseau ou service Web

Faible (LowTrust)

Niveau moyen + Interdiction des opérations suivantes :

  • Ecriture dans le système de fichiers
  • Appel de la méthode Assert (méthode de tests unitaires sur code ou objets)

Minimal (MinimalTrust)

L’application ne dispose que des autorisations d’exécution de base.

Pages d’erreurs ASP.NET

Permet de spécifier des pages d’erreurs personnalisées en réponses à certains codes d’erreurs http

Crée par exemple l’entrée suivante dans le web.config :

        <customErrors>

            <error redirect="http://serveur.com/maPage404.aspx" statusCode="404" />

        </customErrors>

 

 

Pages et contrôles

Définit les paramètres par défaut des pages et contrôles ASP.NET de l’application Web.

La plupart des paramètres sont définis depuis VS.

Activer l'état de session

Permet d’enregistrer et de récupérer des valeurs spécifiques à chaque utilisateur connecté.

Géré par l’Etat de session vu plus haut.

Valider la demande

Indique si ASP.NET doit rechercher des valeurs dangereuses dans la demande envoyée par le navigateur (attaques de script)

Paramètres d’application

Permet de créer/modifier les paramètres d’application

Profil .NET

Permet de gérer des propriétés qui contiendront des valeurs spécifiques à chaque utilisateur visitant le site sans être obligé de gérer une base de données spécifiques.

Par exemple, on peut créer une propriété MarqueAuto qui va mémoriser la marque de la voiture de l’internaute, suite au remplissage d’un formulaire.

Ces valeurs sont écrites et lues avec les lignes de code suivantes :

Profile.MarqueAuto = TextBoxMarqueAuto.Text

Dim s as String = Profile.MarqueAuto

La valeur contenue dans Profile.MarqueAuto sera automatiquement renvoyée par rapport à l’utilisateur connecté, sans savoir qui il est.

Cette information peut ensuite être utilisée afin de personnaliser une ou des pages en fonction de sa valeur.

http://msdn.microsoft.com/fr-fr/library/2y3fs9xs%28v=vs.100%29.aspx

 

Règles d’autorisation .NET

Permet d’accorder ou de refuser l’accès du site Web à un utilisateur ou un groupe d’utilisateur particulier et pour un verbe spécifié (GET ou POST).

Par exemple, cela crée la ligne suivante dans le web.config :

    <system.web>

        <authorization>

            <allow users="*" />

        </authorization>

    </system.web>

 

 

 

1.5.4 – IIS - Rubrique Gestion

Editeur de configuration

Permet de modifier toutes les sections de la configuration du site web.

Cet éditeur est très pratique car il permet de visualiser toutes les sections et leur contenu possible.

Pour chaque contenu, l’éditeur s’adapte au nombre de paramètres nécessaires et affiche chacun d’eux le nom des propriétés requises.

1.5.5 – IIS - Rubrique IIS

ASP

Permet d’effectuer les paramètres relatifs à la configuration ASP.

Authentification

Permet de définir les différentes méthodes d’authentification permettant d’accéder à l’application.

CGI

Permet de configurer les applications CGI

Compression

Permet d’activer ou désactiver la compression des pages dynamiques et statiques.

Document par défaut

Permet de spécifier le document par défaut (utilisé lorsque la demande ne contient pas le nom de la page cible).

En-têtes de réponses http

Permet d’ajouter des paires nom/valeur dans la liste des entêtes http qui seront transmis au navigateur client dans l’entête http de la réponse.

Exploration de répertoire

Attributs à afficher pour l’exploration de répertoire

Filtrage des demandes

Permet de configurer le filtrage (autorisation ou refus) des demandes au niveau des extensions de fichier, des segments, des URLs, des tailles d’entêtes, …

Journalisation

Permet d’effectuer le paramétrage de la journalisation des demandes envoyées au serveur Web.

Mappage de gestionnaires

Permet de gérer le mappage des gestionnaires à utiliser en fonction des ressources ou des extensions des demandées.

Un gestionnaire, (similaire à l'extension ISAPI dans les versions précédentes d’IIS), est responsable du traitement d’une demande et de la production de sa réponse pour des types de contenu spécifiques.

Pour cela, on mappe un gestionnaire à une extension particulière.

Exemple avec les PageHandlerFactory… qui gère les pages .aspx

Pour infos : Le gestionnaire est une classe. NET qui implémente l'interface de System.Web.IHttpHandler ASP.NET ou System.Web.IAsyncHttpHandler, et utilise les API dans l'espace de noms System.Web pour produire une réponse http

 

Un module, (similaire au filtre ISAPI dans IIS versions précédentes), participe au traitement de toutes les demandes basées sur certaines règles afin de modifier ou d’ajouter des fonctionnalités particulières à IIS.

Exemple avec les modules d'authentification, que l’on peut redéfinir, qui gèrent l'état d'authentification quelle que soit l’extension de la demande.

Pour infos : Le module est une classe. NET qui implémente l'interface System.Web.IHttpModule , et utilise les API dans l'espace de noms System.Web pour participer au traitement(s) d’une requête.

 


Mise en cache de sortie

Permet de régler le cache de sortie pour une extension particulière pour les 2 modes noyau et utilisateur.

Pour infos, à partir d’IIS 6.0, les requêtes http sont traitées par le pilote http.sys en mode noyau (géré par Windows),

tous les autres processus (pools d’applications, …) sont exécutés en mode utilisateur (ils peuvent être gérés par les utilisateurs, par exemple les pools d’application, gestion de la configuration, …).

http.sys assure les fonctionnalités suivantes :

  • Transmission des requêtes http à la file d’attente correspondante
  • Mise en cache des réponses
  • Enregistrement des fichiers journaux (pour le service web)

Chaque requête http est transmise à une file d’attente par http.sys, chaque pool d’application ayant sa propre file d’attente.

 

Modules

Permet de gérer les modules IIS.

(Voir définition des modules un peu plus haut).

Pages d’erreurs

Permet de spécifier des pages d’erreurs personnalisées en réponses à certains codes d’erreurs http

On ne peut  pas personnaliser les messages d'erreur HTTP suivants : 400, 403.9, 411, 414, 500, 500.11, 500.14, 500.15, 501, 503 et 505.

Crée par exemple l’entrée suivante dans le web.config :

<httpErrors>

  <error statusCode="404" subStatusCode="2" path="/ErrorPages/404.aspx" responseMode="ExecuteURL" />

</httpErrors>

La différence entre les pages d’erreurs .NET et page d’erreurs IIS est assez floue.

D’une manière générale, si on utilise le serveur Web intégré de Visual Studio , on utilisera de préférence les pages d’erreurs .NET (<customErrors>)

Si on utilise le serveur Web IIS 7, on utilisera de préférence les pages d’erreurs IIS (<httpErrors>).

Parametres SSL

Pour activer SSL dans IIS, on doit d'abord obtenir un certificat qui est utilisé pour chiffrer et déchiffrer les informations qui sont transférées sur le réseau.

Pour faire une demande de certificat, on peut utiliser directement IIS en sélectionnant la racine du serveur et en choisissant Certificats de serveur dans la rubrique IIS :

 

Redirection http

Soit l’arborescence de site suivante :

1 - URL : localhost/website1/home.aspx  renvoie vers http://localhost/website1/redir/home.aspx

2 - URL : localhost/website1/home.aspx  renvoie vers http://localhost/website1/redir/home.aspx/home.aspx

URL : localhost/website1 renvoie vers http://localhost/website1/redir/home.aspx/

Cela crée l’entrée suivante dans web.config :

<system.webServer>

  <httpRedirect enabled="true" destination="http://localhost/website1/redir/home.aspx" exactDestination="true" childOnly="false" />

</system.webServer>

 

Règles d’autorisation

Permet d’accorder ou de refuser l’accès du site Web à un utilisateur ou un groupe d’utilisateur particulier et pour un verbe spécifié (GET ou POST) pour IIS 7 (<system.webServer>)

Par exemple, cela crée l’entrée suivante dans web.config :

    <system.webServer>

        <security>

            <authorization>

                <add accessType="Allow" users="*" verbs="POST" />

            </authorization>

        </security>

    </system.webServer>

 

Type MIME

Permet de gérer les types MIME qui identifient les types de contenus fournis par le serveur Web.

A l’origine, les types MIME ont été créés pour leur utilisation par les clients de messagerie.

Ils ont ensuite étaient étendus au protocole http afin d’être accessible depuis les navigateurs web.

Un type MIME est composé de 2 parties :

Une partie type de média : application, audio, video, text, image

Une 2eme partie donnant le sous-type : exemple jpeg ou gif pour le type image

La plupart des types MIME sont déjà présents dans la configuration IIS.