HttpSessionState.IsCookieless Propriété

Définition

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 regenerateExpiredSessionIdtrue 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.

S’applique à

Voir aussi