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 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 true
le 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.