2011-08-06 25 views
5

¿Hay alguna manera de que pueda verificar si el navegador permitirá las cookies?Verificar si el navegador acepta cookies

Request.Browser.Cookies 

No funciona cuando las cookies están deshabilitadas. Dice que el navegador puede soportarlos.

Lo único que se me ocurre es intentar establecer una cookie de prueba y luego verificar si alguna vez se configuró.

¿Hay alguna forma de asegurarse de que las cookies estén realmente habilitadas?

+2

Una forma de determinar si las cookies son aceptadas es intentar escribir una cookie e intentar volver a leerla. Si no puede leer la cookie que escribió, asume que las cookies están desactivadas en el navegador. –

+1

No es de extrañar que la única respuesta sea escribir la cookie e intentar leerla cuando piense en cómo funcionan las cookies: una respuesta http establece una con un encabezado y luego el navegador solo la devuelve cuando la solicita de ese modo. mismo nombre de dominio - si tres era otra forma de hacerlo, entonces las cookies no serían buenas para cosas como la autenticación y tal –

Respuesta

9

De acuerdo con MSDN, el usuario no puede determinar ni permitir ninguna forma de cookies. La única manera de descubrirlo es escribiéndolo y luego leyéndolo.

Consulte la sección "Determinar si un navegador acepta cookies" here.

También tiene ejemplos que muestran cómo leer y escribir cookies, y afirma:

La propiedad cookies no indica si las cookies están habilitadas. Es indica solo si el navegador actual es inherentemente compatible con las cookies .

2

No conozco ninguna forma de hacerlo en asp.NET. Todo lo que puede hacer es crear una cookie e intentar leerla en la devolución de datos.
Se puede ver ejemplo de cómo hacerlo (esto es, en vb.NET pero estoy seguro de que puedes encontrar en Google y muchos otros ejemplos en C#): http://forums.asp.net/t/1044823.aspx

+0

Hasta el momento, parece ser la única opción. – Dietpixel

+0

@Dietpixel: me enfrenté a este problema antes y después de muchos chackings Me di cuenta de que esta es mi mejor y simple opción (si no la única). – Naor

1

estoy no sé otro método : configure la cookie, verifique si existe la cookie.

1

Como todo el mundo dice, es esencialmente necesario configurar, redireccionar, detectar (a menos que usted desea que sólo la detección lado del cliente en caso de que JavaScript puede hacer el registro de entrada) Hay a control for this someone wrote.

0

HttpCapabilitiesBase.Cookies propiedad obtiene un valor que indica si el navegador admite cookies. See the documentation.

+0

De la documentación: "La propiedad Cookies indica si la aplicación del navegador admite cookies. Si el usuario ha deshabilitado las cookies en su aplicación, la propiedad Cookies no se verá afectada". –

Cuestiones relacionadas