www.cours-ofppt.com Plan ASP.NET ASP.NET ASP.NET 1. Développement 2. Contrôles



Documents pareils
Gestion du cache dans les applications ASP.NET

ASP.NET 2.0, C#, Spring.Net et NHibernate

TP3 1 : WEB APPLICATIONS AVEC ASP.NET

TP JAVASCRIPT OMI4 TP5 SRC

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module BD et sites WEB

Les contrôles serveurs spécialisés

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

Application web de gestion de comptes en banques

La double authentification dans SharePoint 2007

PROJET AZURE (par Florent Picard, A2011)

Gestion de l authentification et des autorisations

Interagir avec le SharePoint. Version 1.0

Stockage du fichier dans une table mysql:

< Atelier 1 /> Démarrer une application web

Sécurisation d une application ASP.NET

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Thomas Petillon. les Cahiers du. Programmeur ASP.NET. Groupe Eyrolles, 2003 ISBN :

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Programmation Web. Madalina Croitoru IUT Montpellier

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Création de formulaires interactifs

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Introduction à JDBC. Accès aux bases de données en Java

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Attaques applicatives

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Compte Rendu d intégration d application

PHP 5. La base de données MySql. A. Belaïd 1

Gestion de stock pour un magasin

DOM - Document Object Model

Rafraichissement conditionné d'une page en.net

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

CREATION WEB DYNAMIQUE

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Déploiement et monitoring

Mise en œuvre des serveurs d application

SYSTÈMES D INFORMATIONS

TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZURE

OpenPaaS Le réseau social d'entreprise

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

JavaServer Pages (JSP)

Java DataBaseConnectivity

Application Web et J2EE

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Compte-rendu de projet de Système de gestion de base de données

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Mise en œuvre de la sécurité.net avec MS Visual Studio.NET Plan

Programmation Web. Introduction

Manuel d'installation

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Formulaires et Compteurs

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Guide d installation BiBOARD

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Web Tier : déploiement de servlets

PHP 5.4 Développez un site web dynamique et interactif

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Authentification et contrôle d'accès dans les applications web

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Les services usuels de l Internet

et Groupe Eyrolles, 2006, ISBN :

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Plateforme PAYZEN. Définition de Web-services

1. Installation d'un serveur d'application JBoss:

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Création d objet imbriqué sous PowerShell.

Déploiement d'une base SQL Express

Construire une application marketing Facebook sur la plateforme Windows Azure

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

Les bases de données

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

PDO : PHP Data Object 1/13

Le stockage local de données en HTML5

MEDIAplus elearning. version 6.6

Mémoire de projet de fin d études Création de pages web pour les branches de la faculté de génie

1. Base de données SQLite

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

K?ellaWeb Saisie des absences, retards et sanctions APLON en mode Web

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

Pour valider les pré-requis nécessaires, avant d'aborder le TP, répondez aux questions ciaprès

Application de lecture de carte SESAM-Vitale Jeebop

Déployer une application Web avec WebMatrix et Ma Plateforme Web

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Définition des Webservices Ordre de paiement par . Version 1.0

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

Cyberclasse L'interface web pas à pas

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Transcription:

www.cours-ofppt.com ASP.NET Plan 2. Contrôles Lionel Seinturier Université des Sciences et Technologies de Lille Lionel.Seinturier@lifl.fr 2.3 Gestion des utilisateurs 26/11/07 ASP.NET 1 Lionel Seinturier ASP.NET 2 Lionel Seinturier Active Server Pages (ASP) ASP.NET ASP vs ASP.NET ASP.NET du code Java embarqué dans une page HTML mêmes principes JSP, PHP les fichiers.aspx sont stockés sur le serveur (comme des docs) ils sont désignés par une URL http://www.lifl.fr/prog.aspx le chargement de l'url provoque l'exécution de l'asp côté serveur Client IE Firefox... 1 4 Serveur CLR prog.aspx ASP.NET 3 Lionel Seinturier 2 3.NET évolution des ASP pour prendre en compte.net extension.asp (.aspx pour ASP.NET) ASP : VBScript ou JScript ASP: interprété/non typé ASP.NET vs JSP modèle de programmation similaire ++ ASP.NET = composants graphiques (contrôles) ASP.NET vs servlet ASP.NET : VB, C#, langages.net ASP.NET : compilé/typé pas d'équivalent de l'api servlet dans le monde ASP.NET en interne, les ASP.NET sont traduites en classes et compilées ASP.NET 4 Lionel Seinturier

Illustration du fonctionnement <H1>Table des factorielles</h1> <% int i,fact; for ( i=1,fact=1 ; i<4 ; i++, fact*=i ) { Response.Write( i + "! =" + fact + "<BR>" ); } %> invocation exécution côté serveur Principe de fonctionnement <H1>Table des factorielles</h1> <% int i,fact; for ( i=1,fact=1 ; i<4 ; i++, fact*=i ) { Response.Write( i + "! =" + fact + "<BR>" ); } %> ce qui est renvoyé au client <H1>Table des factorielles</h1> 1! = 1<BR> 2! = 2<BR> 3! = 6<BR> du code C# résultat = HTML généré via l'objet prédéfini Response ASP.NET 5 Lionel Seinturier ASP.NET 6 Lionel Seinturier Principe de fonctionnement plusieurs zones <%... %> possibles dans une même ASP.NET exécutées dans leur ordre de définition une classe générée pour chaque ASP.NET ne change pas tant que le fichier.aspx n'est pas modifié instanciée pour traiter une requête pas de persistence de l'instance (objet) entre 2 invocations besoin : conserver de l'information déclarer des attributs static Méthodes et variables d'instance Entre les balises <script runat="server"> et </script> <H1>Compteur</H1> <script runat="server"> static int compteur = 0; int GetCompteur() { return compteur++; } </script> <H1> <% Response.Write(GetCpt()); %> </H1> ASP.NET 7 Lionel Seinturier ASP.NET 8 Lionel Seinturier

Exemple Balise <script> Le code peut être défini dans un fichier externe 1ère invocation <H1>Compteur</H1> <script runat="server" src="url" /> <H1> <% Response.Write(GetCpt()); %> </H1> 2ème invocation Directive Import <%@ Import Namespace = "..."> using ASP.NET 9 Lionel Seinturier ASP.NET 10 Lionel Seinturier Les objets implicites Objets prédéclarés utilisables dans le code Récupération des données d'un formulaire Propriété Params de l'objet prédéfini Request Request Response Session Application Cache Server Trace la requête qui a provoqué le chargement la réponse à la requête de chargement suivi de session pour un même client Session.Add( string name, object value ) Session[string name] espace de données partagé entre toutes les ASP.NET idem Session données gardées en cache par le serveur information sur le serveur, inclusion, délégation de pages générer des traces d'exécution retourne le texte saisi ou null si le nom de paramètre n'existe pas <FORM ACTION="http://..." METHOD=POST> Nom <INPUT NAME="nom"> <P> Prénom <INPUT NAME="prenom"> <P> <INPUT TYPE=SUBMIT VALUE="Envoi"> <INPUT TYPE=RESET VALUE="Remise à zéro"> </FORM> ASP.NET 11 Lionel Seinturier ASP.NET 12 Lionel Seinturier

Récupération des données d'un formulaire Inclusion de pages ASP.NET 4 <H1>Exemple de résultat</h1> Bonjour <% Response.Write( Request.Params.Get("prenom") ); %> <% Response.Write( Request.Params.Get("nom") ); %> aggrégation des résultats fournis par plusieurs page meilleure modularité meilleure réutilisation Méthode Server.Execute ASP.NET ASP.NET 1 ASP.NET 2 ASP.NET 3 ASP.NET 5 clic <H1>ASP.NET principale</h1> <% Server.Execute(" inc.aspx "); %> Fichier inc.aspx <H1>ASP.NET incluse</h1> URL ASP.NET 13 Lionel Seinturier ASP.NET 14 Lionel Seinturier Délégation de page Gestion des erreurs Une page peut déléger le traitement d'une requête à une autre prise en compte complète de la requête par la page déléguée Méthode Server.Transfer Tout ce qui est après Transfer est ignoré <H1>ASP.NET principale</h1> <% Server.Transfer(" transf.aspx "); %> Erreur d'exécution du code ex. : NullReferenceException, DivideByZeroException, dans tous les cas, erreur récupérée dans le navigateur client 2 possibilités conserver la page par défaut construite par le serveur Web en concevoir une adaptée aux besoins particuliers de l'application URL ASP.NET 15 Lionel Seinturier ASP.NET 16 Lionel Seinturier

Exemple de gestion d'erreur <H1>Pourvu...!!</H1> <% Random r = new Random(); double h = (double)r.next(); int hasard = (int) (h/int32.maxvalue*5); %> <H1> <% Response.Write(12/hasard); %> </H1> Si hasard = 0 page d'erreur par défaut Exemple de gestion d'erreur <%@ Page Language="c#" ErrorPage="err.aspx" %> <H1>Pourvu...!!</H1> <% Random r =... %> <H1> <%... (12/hasard) %> </H1> <h1>le 0 est sorti!!</h1> Si hasard = 0 page d'erreur err.aspx ASP.NET 17 Lionel Seinturier ASP.NET 18 Lionel Seinturier Gestion des traces debugger contrôler/inspecter le déroulement d'une appli web à la main : Response.Write : lourd, long à enlever pour passer en prod. Activation des traces <%@ Page Trace="true" %> Exemple factorielle À chaque itération : Trace.Write( "i=" + i + " / fact=" + fact ); Objet prédéfini Trace System.Web.TraceContext Trace.Write(string message) Trace.Write(string categorie, string message) Trace.Write(string categorie, string message, Exception e) idem méthode Warn : les messages apparaissent en rouge dans les traces ASP.NET 19 Lionel Seinturier ASP.NET 20 Lionel Seinturier

Plan 2. Contrôles Philosophie ASP.NET Séparer rendu graphique traitement 2. Contrôles 2.3 Autres contrôles 2 fichiers.aspx le code de présentation et celui des contrôles fichier XTHML (HTML 4.0 formulé en XML) Web form.aspx.cs,.aspx.vb, fichier dit codebehind classe contenant les traitements ASP.NET 21 Lionel Seinturier ASP.NET 22 Lionel Seinturier Les contrôles 2. Contrôles Les contrôles existants par défaut 2. Contrôles Composants graphiques pour l écriture de pages ASP.NET pour agir avec l'utilisateur : lui présenter de l'information pour réagir aux actions de l'utilisateur : déclencher des traitements utilisation en drag-and-drop dans VS pour la conception page web analogue atelier conception IHM en client lourd classe / objet propriétés : les caractéristiques d'affichage (ex. Text pour un TextBox) événements: réactions (clic, frappe, changement, ) autant d'objets par page que de contrôles "déposés" sur la page interaction avec la page interaction avec les objets rendu HTML de la page à partir de l'état des objets toutes les balises HTML standards (<input> <img> <p> ) composants supplémentaires fournis par MS (redondants avec HTML mais + évolués) affichage : Label, Image, Panel, Tabel bouton : Button, Hyperlink, ImageButton, LinkButton saisie : TextBox, CheckBox, RadioButton, FileUpload, liste : ListBox, DropDownList, validation : CompareValidator, RequiredFieldValidator, RangeValidator, divers : Calendar données : DataList, GridView, DetailsView login. + de nouveaux contrôles peuvent être programmés par l utilisateur ASP.NET 23 Lionel Seinturier ASP.NET 24 Lionel Seinturier

Exemple Exemple Contrôles TextBox et Button Contrôles TextBox et Button Fichier WebForm1.aspx <%@ Page Language="c#" CodeFile="WebForm1.aspx.cs" Inherits="WebForm1" %> <html> <body> <form id="form1" runat="server"> <asp:textbox ID="MyTextBox" runat="server" /> <asp:button ID="MyButton" runat="server" OnClick="MyButton_Click" /> </form> </body> Fichier WebForm1.aspx.cs demo >> ASP.NET 25 Lionel Seinturier public partial class WebForm1 : System.Web.UI.Page { public void MyButton_Click(object sender, System.EventArgs e) { MyTextBox.Text = "Hello world!"; } } ASP.NET 26 Lionel Seinturier Contrôle TextBox Propriétés principales ID : identificateur unique (propriété présente pour tous les contrôles) Text : le texte affiché MaxLength : taille max du texte TextMode : SingleLine MultiLine Password ReadOnly : false true Columns : le nombre de colonnes Rows : le nombre de lignes (MultiLine) BackColor, BorderColor, ForeColor : couleurs BorderStyle, BorderWidth, Font : affichage Événement principal TextChanged : le texte change (méthode de réaction OnTextChanged) Association page - code 1ère solution :.aspx + codebehind + association (On ) déclarée dans.aspx 2ème solution : sans codebehind définir le code des méthodes de traitements des événements dans le fichier.aspx entre des balises <script runat="server"> et </script> 1 seul fichier à gérer, moins modulaire 3ème solution :.aspx + codebehind + association (On ) déclarée dans codebehind ne pas utiliser l'attribut OnClick dans le fichier.aspx ajouter un gestionnaire d'événement sur le bouton dans le code C# en redéfinissant la méthode exécutée lors du chargement (OnInit) couplage moins fort entre le fichier.aspx et le codebehind plus difficile à manipuler, moins intuitif ASP.NET 27 Lionel Seinturier ASP.NET 28 Lionel Seinturier

Contrôle GridView présentation d'information sous forme de tableau édition, suppression pager automatique tri Exemple d'utilisation édition des données d'une table SQL associé à un contrôle DataSource Contrôle DataSource source des données à afficher SqlDataSource : un SGBD (SQL Server, ) AccessDataSource : un fichier Access XmlDataSource : un fichier XML ObjectDataSource : des objets (C#, VB, ) Définition d une SqlDataSource une connection string (~ chemin d accès aux données) 4 commandes SQL : SELECT, INSERT, DELETE, UPDATE ASP.NET 29 Lionel Seinturier ASP.NET 30 Lionel Seinturier Exemples Contrôle GridView Exemple de DataSource <asp:sqldatasource ID="SqlDataSource1" runat="server" ConnectionString="Driver={SQL Server};server=localhost;database=master" ProviderName="System.Data.Odbc" SelectCommand="SELECT * FROM [foo]" DeleteCommand="DELETE FROM [foo] WHERE [nom] =?" InsertCommand="INSERT INTO [foo] ([nom], [age]) VALUES (?,?)" UpdateCommand="UPDATE [foo] SET [age] =? WHERE [nom] =?"> </asp:sqldatasource> Exemple de GridView <asp:gridview ID="GridView1" runat="server" DataSourceID="SqlDataSource1" DataKeyNames="nom" AutoGenerateColumns="True" AllowPaging="True" PageSize="4" AllowSorting="True" AutoGenerateEditButton="true" AutoGenerateDeleteButton="true"> </asp:gridview> demo >> ASP.NET 31 Lionel Seinturier Propriétés principales ID AllowPaging, AllowSorting AutoGenerateColumns AutoGenerateDeleteButton (idem Edit, Select) Rows : les lignes affichées dans le GridView SelectedIndex : l'indice de la ligne sélectionnée ex. utilisation : GridView1.Rows[GridView1.SelectedIndex].Cells[0].Text EditIndex, PageIndex Événements principaux RowUpdating : juste avant de mettre à voir une ligne RowUpdated : après avoir mis à jour une ligne idem SelectedIndexChanging/ed, Sorting/ed, RowDeleting/ed, PageIndexChanging/ed ASP.NET 32 Lionel Seinturier

Contrôle DetailsView présentation sous forme de fiches même action que GridView (édition, suppression) action supplémentaire : ajout Exemple <asp:detailsview ID="DetailsView1" runat="server" DataSourceID="SqlDataSource1" DataKeyNames="nom" AutoGenerateRows="true" AutoGenerateEditButton="True" AutoGenerateDeleteButton="True" AutoGenerateInsertButton="True" AllowPaging="True" > </asp:detailsview> demo >> ASP.NET 33 Lionel Seinturier ASP.NET 34 Lionel Seinturier Autre exemple de contrôle 2.3 Autres contrôles Contrôle Login 2.3 Autres contrôles Contrôle Login gérer les comptes utilisateurs sur un site créer des comptes les stocker dans une base de données offrir un contenu différents selon que l utilisateur est connecté ou non Login LoginStatus CreateUserWizard ChangePassword PasswordRecovery : se connecter : affichage du statut (connecté/non connecté) : création d un nouvel utilisateur : changer le mot de passe du compte : récupérer son mot de passe Modification du fichier Web.Config <configuration xmlns="http://schemas.microsoft.com/.netconfiguration/v2.0"> <appsettings/> <connectionstrings> La base de données dans laquelle <remove name="localsqlserver"/> vont être stockées les infos de login <add name="localsqlserver" connectionstring="data Source= localhost;initial Catalog=aspnetdb; Integrated Security=True" providername="system.data.sqlclient"/> </connectionstrings> <system.web> <authentication mode="windows"/> <authentication mode="forms"/> ASP.NET 35 Lionel Seinturier ASP.NET 36 Lionel Seinturier

Contrôle Login 2.3 Autres contrôles Contrôle Login 2.3 Autres contrôles Modification du fichier Web.Config Par défaut le contrôle Login impose des règles strictes de sécurité sur les mots de passe au moins 7 caractères au moins 1 caractère non alphanumérique possibilité de réduire ces exigences Modification du fichier Web.Config <system.web> <authentication mode="forms"/> <membership defaultprovider="mymembershipprovider" > <providers> <add name="mymembershipprovider" type="system.web.security.sqlmembershipprovider" minrequirednonalphanumericcharacters="0" minrequiredpasswordlength="1" passwordstrengthregularexpression="" connectionstringname=" LocalSqlServer " /> </providers> </membership> </system.web> </configuration> La réf. sur la chaîne de connexion ASP.NET 37 Lionel Seinturier ASP.NET 38 Lionel Seinturier Contrôle Login 2.3 Autres contrôles Contrôles définis par l'utilisateur Création de la base des utilisateurs programme aspnet_regsql.exe \WINDOWS\Microsoft.NET\Framework\v2.0.xxx base SQL Server aspnetdb alternativement fichier XML Rq: gestion des utilisateurs et des membership provider via le site web d admin factorisation de code HTML et de scripts fichier.ascx <table><tr> <td><asp:textbox id="jour" runat="server" /></td><td>/</td> <td><asp:textbox id="mois" runat="server" /></td><td>/</td> <td><asp:textbox id="annee" runat="server" /></td> <script language="c#" runat="server"> public string Jour { // les propriétés de la pagelet get { return jour.text; } set { jour.text=value; } } /* idem Mois, Annee */ </script> </tr></table> ASP.NET 39 Lionel Seinturier ASP.NET 40 Lionel Seinturier

Utilisation de pagelet Utilisation de pagelet <%@ Register TagPrefix TagName Src le namespace XML choisi le nom de la pagelet choisi l'url pour accéder au fichier.ascx <%@ Register TagPrefix="foo" TagName="bar" Src="Date.ascx" %> <html><body> <form runat="server"> <foo:bar id="jma" runat="server" /> <asp:label id="label" runat="server" /> <asp:button id="button" text="go!" runat="server" onclick="click" /> </form> <script runat="server"> void Click(object sender, System.EventArgs e) { Label.Text = JMA.Jour; } </script></body></html> clic ASP.NET 41 Lionel Seinturier ASP.NET 42 Lionel Seinturier Utilisation de pagelet Autre façon de définir des contrôles utilisateur chaque pagelet est compilée en une classe nompagelet_ascx (ex : Date_ascx) instanciée lorsqu'on les utilise <foo:bar id="jma" runat="server" /> Alternativement peut être instanciée par programme ajoutée dynamiquement à une page <script runat="server"> void Page_Load() { Control dt = LoadControl("Date.ascx"); ((Date_ascx)dt).Jour = 12; Frm.Controls.Add(dt); } </script> <form id="frm" runat="server">... LoadControl("Date.ascx") ASP.NET 43 Lionel Seinturier étendre System.Web.UI.WebControls.WebControl redéfinir CreateChildControls Avantage : le contrôle peut-etre défini à l'aide d'un DOM HTML on ne se préoccupe pas d'écrire le code HTML public class MyWebControl : WebControl { protected override void CreateChildControls() { Table tbl = new Table(); TableRow row = new tablerow(); TableCell cell = new TableCell(); TextBox box = new TextBox(); box.id = "jour"; cell.controls.add(box); row.cells.add(cell); table.rows.add(row); Controls.Add(table); } } ASP.NET 44 Lionel Seinturier

Plan 2. Contrôles 2.3 Pagelet ASP.NET 45 Lionel Seinturier Les objets prédéfinis ASP.NET Request la requête qui a provoqué le chargement System.Web.HttpRequest.Params les paramètres de la requêtes.rawurl l'url complète.filepath le chemin du fichier dans l'url /foobar/c2/webform1.aspx.physicalpath le chemin ϕ du fichier sur disque c:\inetput\wwwroot\foobar\c2\webform1.aspx.physicalapplicationpath la racine de l'application c:\inetput\wwwroot\foobar\.headers.userhostname.userhostaddress.userlanguages.cookies les en-têtes de la requête HTTP l'@ du client l'ip du client les préférences du client en terme de langues lecture d'un cookie ASP.NET 46 Lionel Seinturier Les objets prédéfinis ASP.NET Les objets prédéfinis ASP.NET Response.ContentType.Cache.SetCookie la réponse à une requête System.Web.HttpResponse le type MIME du contenu retourné au client (text/html, image/gif, ) gestion de la politique de cache de la réponse (date expiration) positionnement d'un cookie chez le client Session gestion d'une session client System.Web.SessionState.HttpSessionState Fonctionne comme une table de hachage indicée Session["key"] = object object res = Session["key"] object res = Session[int] Session.Count Session.GetEnumerator() Session.Remove("key") Session.RemoveAt(int) Session.RemoveAll() // null si la clé n'existe pas le i-ème élément de la session le # d'éléments dans la session un itérateur sur toutes les éléments de la session Session créée lors de la 1ère visite d'un client (Session.IsNewSession vaut true) Session.Timeout délai d'inactivité (en minutes) au delà duquel la session expire ASP.NET 47 Lionel Seinturier ASP.NET 48 Lionel Seinturier

Les objets prédéfinis ASP.NET Les objets prédéfinis ASP.NET Application espace de données partagé par tous les clients System.Web.HttpApplicationState Fonctionne comme une table de hachage indicée Application["key"] = object object res = Application["key"] object res = Application[int] Application.Count Application.GetEnumerator() Application.Remove("key") Application.RemoveAt(int) Application.RemoveAll() // null si la clé n'existe pas le i-ème élément de la session le # d'éléments dans la session un itérateur sur toutes les éléments de la session Cache Server espace de données partagé par tous les clients par rapport Application : peut avoir une durée de vie limitée System.Web.Caching.Cache informations sur le server System.Web.HttpServerUtility ASP.NET 49 Lionel Seinturier ASP.NET 50 Lionel Seinturier www.cours-ofppt.com www.cours-ofppt.com