Cours View State, tutoriel & guide de travaux pratiques en pdf.
Le View State
Vous avez surement du remarquer que lorsque vous cliquez sur un button d’une page ASPX, les informations que vous avez rentré auparavant sont automatiquement conservées (sauf pour les éléments rajoutés en CodeBehind).
Par exemple si on met à jour un label, tous les rechargements de la page qui suivront conserveront cette dernière mise à jour. Ceci est possible grâce à la gestion d’état côté client d’ASP.NET et plus particulièrement aux View State.
La propriété View State nous fournit une collection d’objet permettant de conserver des valeurs entre plusieurs requêtes sur la même page. Quand une page ASP.NET est traitée, l’état courant de la page ainsi que de ses contrôles sont hachés en une chaîne de caractère puis sauvegardés dans la page un peu comme un champ caché en HTML (<input type= »hidden » />).
Si les données sont trop longues (que l’on peut spécifier grâce à la propriété MaxPageStateField-Length) alors ASP.NET scindera nos données en de multiples champs cachés plutôt qu’en un seul.
Dans les sous-parties suivantes nous aborderons le chiffrement des données View State, la désactivation des View State ainsi que l’ajout de données personnalisées dans le View State.
Chiffrement des données View State
Il est possible d’activer le chiffrement des données View State afin de rendre plus difficile l’accès des données aux personnes malintentionnées. Cette mise en place créera une charge
supplémentaire de calcul pour le serveur mais peut être nécessaire si vous décidez de stocker des informations personnelles dans les View States.
Pour ce faire, il faut se rendre dans votre fichier de configuration Web.config (voir chapitre précédent pour la configuration en détail de ce fichier). Il faut alors modifier l’attribut de pages viewStateEncryptionMode en Always comme le montre l’exemple ci-dessous :
<configuration> <system.web> <pages viewStateEncryptionMode= »Always »/> </system.web> </configuration>
Vous pouvez sinon activer le chiffrement de View State pour des pages spécifiques en ajoutant la propriété ViewStateEncryptionMode= »Always » dans la directive page de la page Web voulue comme le montre cet exemple :
<%@ Page Language= »C# » AutoEventWireup= »true » CodeBehind= »Page1.aspx.cs » Inherits= »Test.Page1″ ViewStateEncryptionMode= »Always »%>
Désactiver le View State
Le View State est activé par défaut pour chaque contrôle. Cela dit, si vous ne l’utilisez pas, il prend une charge de calcul inutile. Vous pouvez palier à ce problème en mettant la propriété EnableViewState à false pour chaque contrôle.
Exemple :
<asp:Label ID= »RecupData » runat= »server » Text= »Label » EnableViewState= »false »></asp:Label>
Il est aussi possible de le désactiver dans le Web.config (avec la balise pages) ou dans la directive Page d’une page spécifique avec la même propriété (EnableViewState).
Lire et écrire des données personnalisés dans le View State
Il est possible d’ajouter ou de récupérer des valeurs personnalisées dans des View States. Par exemple, vous souhaitez conserver une valeur particulière pendant toute la durée de la visite de l’utilisateur, alors l’ajout d’une donnée personnalisée dans le View State sera le moyen le plus efficace et le plus sûr pour y parvenir. En contrepartie cette valeur ne sera accessible que tant que l’utilisateur ne visitera pas d’autre page. Ceci est une bonne alternative pour le stockage de données temporaires.