2009-09-21 11 views
2

Je veux vérifier si un utilisateur a activé les cookies. La plupart des solutions impliquent: 1. créer un cookie 2. rediriger l'utilisateur vers une page personnalisée ou la même page. 3. Lisez le cookie.Vérifiez les cookies dans asp.net

Le problème que j'ai est dans la 2ème étape. Dois-je utiliser une chaîne de requête tout en faisant un response.redirect de sorte que lors du prochain voyage, je sais que le cookie a déjà été défini et que je devrais essayer de le lire? Que se passe-t-il si l'utilisateur tape l'URL (avec cette chaîne de requête) dans le navigateur lors de l'accès au site Web? En outre, si je trouve que les cookies sont activés et que je mets une variable de session pour indiquer que les cookies sont activés sur ce navigateur, ne pas vérifier à nouveau dans cette session. Est-ce que c'est OK? Si la session est disponible, est-ce un bon indicateur que les cookies sont activés?

Je veux minimiser ces doubles déplacements sur chaque page pour vérifier les cookies.

Répondre

0

Ne passez jamais une chaîne de requête. Vous avez déjà fait allusion à cela ci-dessus, mais que se passe-t-il si un trickster figure sur notre URL et décide de passer sa propre requête?

Si l'utilisateur a configuré des cookies, vous pouvez définir la session et vérifier cela. Toujours vérifier la session. Au lieu d'utiliser cette technique qui implique plusieurs étapes et pages, et un temps d'attente supplémentaire pour l'utilisateur final, ne pouvez-vous pas simplement utiliser la classe HttpBrowserCapabilities?

+0

Merci CitizenBane .. Ok..Si les cookies sont activés, je peux définir la session et la vérifier lors de tous les voyages suivants sur le site. Si les cookies sont désactivés, y aurait-il un moyen de le prouver? – AgentHunt

+0

Vous n'obtiendrez pas de session. Les sessions Asp.net dépendent de l'activation des cookies. Essayez par vous-même - désactiver les cookies et déboguer à travers votre code. – CitizenBane

+0

> Les sessions Asp.net dépendent du fait que vous ayez activé les cookies Pas toujours, ASP.net a un mode pour SessionState = "cookieless" Cela fonctionne en plaçant l'identifiant de session unique dans chaque URL chemin. –

0

Cette classe particulière a une propriété Cookies:

HttpBrowserCapabilities.Cookies Property

Grz, Kris.

+0

Je crois que cette propriété vérifie si le navigateur supporte les cookies. Je veux vérifier si l'utilisateur a activé/désactivé les cookies. Je pense que les deux sont des choses différentes. Aidez-moi si je me trompe ici. – AgentHunt

1

Je voudrais utiliser javascript pour faire une demande asynchrone et vérifier si les cookies qui ont été réglés ont été remis dans cette demande.

+0

Je dois placer ce code juste au cas où le javascript est désactivé :( – AgentHunt

0

Selon ma connaissance, je connais deux façons de vérifier si le navigateur permet/d'accepter les cookies

  1. En utilisant "Request.Browser.Cookies"

  2. En utilisant Javascript/Jquery

Exemple:

if (Request.Browser.Cookies) 
{ 
     Response.Write("Welcome To Hello World Cookies Accepted by the browser"); 
} 
else 
{ 
       Response.Write("Good Bye To Hello World. Cookie diabled in your browser. Enable cookies and Try again... Cool.."); 

} 
Questions connexes