HttpSessionState.IsCookieless Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient une valeur indiquant si l'ID de session est incorporé dans l'URL ou stocké dans un cookie HTTP.
public:
property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean
Valeur de propriété
true
si la session est incorporée à l'URL ; sinon, false
.
Exemples
L’exemple de code suivant définit l’attribut cookieless
de session sur true dans le fichier Web.config.
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
regenerateExpiredSessionId="true"
timeout="30" />
</system.web>
</configuration>
Remarques
ASP.NET identifie les sessions de manière unique avec chaque navigateur. Par défaut, l’identificateur unique d’une session est stocké dans un cookie de session qui n’expire pas dans le navigateur. Vous pouvez spécifier que les identificateurs de session ne sont pas stockés dans un cookie en définissant l’attribut cookieless
sur true
dans l’élément de configuration sessionState .
Notes
Pour améliorer la sécurité de votre application, votre application doit autoriser les utilisateurs à se déconnecter, auquel moment elle doit appeler la Abandon méthode . Cela réduit le risque qu’une source indésirable utilise l’identificateur unique dans l’URL pour récupérer des données privées stockées dans la session pour un utilisateur.
ASP.NET conserve l’état de session sans cookie en insérant automatiquement un ID de session unique dans l’URL de la page. Par exemple, l’URL suivante a été modifiée par ASP.NET pour inclure l’ID de session unique lit3py55t21z5v55vlm25s55 :
http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx
ASP.NET modifie les liens contenus dans toutes les pages demandées en incorporant une valeur d’ID de session dans les liens juste avant d’envoyer chaque page au navigateur. L’état de session est conservé tant que l’utilisateur suit le chemin des liens fournis par le site. Toutefois, si l’agent utilisateur réécrit une URL, l’instance d’état de session est perdue.
L’ID de session est incorporé dans l’URL après la barre oblique qui suit le nom de l’application et avant tout fichier ou identificateur de répertoire virtuel restant. Cela permet ASP.NET de résoudre le nom de l’application avant d’impliquer le SessionStateModule dans la demande.
Par défaut, les identificateurs de session utilisés dans les sessions sans cookie sont recyclés. Autrement dit, si une requête est effectuée avec un ID de session qui a expiré, une nouvelle session démarre à l’aide de l’ID de session fourni avec la demande. Ce comportement peut entraîner le partage indésirable de données de session lorsqu’un lien contenant un ID de session sans cookie est partagé avec plusieurs navigateurs, peut-être via un moteur de recherche ou un autre programme. Vous pouvez réduire le risque que des données de session soient partagées par plusieurs clients en désactivant le recyclage des identificateurs de session. Pour ce faire, définissez l’attribut regenerateExpiredSessionId
de l’élément de configuration sessionState sur true
. Cela entraîne la génération d’un nouvel ID de session lorsqu’une demande de session sans cookie est effectuée avec un ID de session expiré. Notez que si la requête effectuée avec l’ID de session expiré utilise la méthode HTTP POST
, toutes les données publiées sont perdues lorsque regenerateExpiredSessionId
est true
, car ASP.NET effectue une redirection pour s’assurer que le navigateur a le nouvel identificateur de session dans l’URL.
Notes
Bien que la définition de l’attribut regenerateExpiredSessionId
true
sur réduit le risque de partage indésirable des données de session, il ne protège pas contre une source indésirable qui accède à la session d’un autre utilisateur en obtenant la SessionID valeur et en l’incluant dans les demandes adressées au serveur. Si vous stockez des informations privées ou sensibles dans l’état de session, il est recommandé d’utiliser SSL pour chiffrer toute communication entre le navigateur et le serveur qui inclut le SessionID.