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é

Boolean

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 non expiré 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 true sur l’élément de configuration sessionState .

Notes

Pour améliorer la sécurité de votre application, votre application doit permettre aux utilisateurs de se déconnecter, à quel moment il doit appeler la Abandon méthode. Cela réduit le potentiel d’une source indésirable à l’aide de 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 incorporé 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 d’accès 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 la SessionStateModule requête.

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 est démarrée à l’aide de l’ID de session fourni avec la demande. Ce comportement peut entraîner le partage indésirable des données de session lorsqu’un lien qui contient 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 la possibilité que les 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 HTTPPOST, toutes les données publiées sont perdues lorsque regenerateExpiredSessionId c’est truele cas, car ASP.NET effectue une redirection pour vous assurer que le navigateur a le nouvel identificateur de session dans l’URL.

Notes

Lors de la définition de l’attribut regenerateExpiredSessionId pour true réduire la possibilité d’un partage indésirable de données de session, il ne protège pas contre une source indésirable qui obtient l’accès à 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