2010-02-23 13 views
9

Intenté publicar esto en ServerFault sin suerte, así que lo estoy intentando aquí.Creando una aplicación sin cookies en una máquina de desarrollo con asp.net

Estoy pensando en configurar un nuevo dominio para alojar contenido estático en mi sitio web y tenerlo sin cookie al igual que Stackoverflow con su static domain. Así que antes de seguir adelante y comprar el dominio y configurarlo, quería probarlo en mi máquina de desarrollo primero en localhost (tengo que mencionar que estoy planeando tener IIS ejecutándose en mi nuevo dominio para los archivos estáticos).

Por lo tanto, creé una nueva aplicación en IIS y desactivé el estado de la sesión y la autenticación de formularios. Cuando mi aplicación principal necesita recursos como css, images y js, utilizo la ruta a la aplicación "estática" donde están alojados.

El problema es que cuando miro la solicitud y la respuesta para los archivos solicitados, todavía tienen la cookie session_id definida, así como la cookie de autenticación asp.net.

¿Es posible lograr lo que estoy tratando de hacer en una máquina de desarrollo o tengo que seguir adelante y comprar el nuevo dominio que con suerte hará las cosas bien? Traté de leer sobre dominio sin cookies pero no puedo entender lo que me podría estar perdiendo.

actualización

Mi disposición es el siguiente. Creé dos aplicaciones web. - Una aplicación web para el sitio web - una aplicación web para todo estáticas (CSS, imágenes, scripts ...)

se añaden Ambas aplicaciones a IIS y ninguno de ellos es un sub-aplicación de la otra. (Ambos son sitios web separados en la estructura de IIS).

Me he preguntado si tener ambos sitios web bajo la misma IP podría haber explicado mis resultados, pero cuando implementé ambos sitios, el problema desapareció.

+0

¿Puede describir su configuración un poco más? Usted dice que crea una nueva aplicación, pero realmente debería crear un nuevo sitio web vinculado a una dirección IP y/o número de puerto y/o nombre de host diferentes. No puede crear una nueva aplicación en el mismo sitio web. Necesita crear dos sitios web separados. –

+0

@MarcoMiltenburg Bueno, no fui yo quien formuló la pregunta en primer lugar, solo le puse el favor. el OP debe solicitar un nuevo sitio web en la misma máquina/IP. Dado que es solo para fines de desarrollo. –

+0

Lo siento por mi respuesta tardía, muchachos! De hecho, me interesaba solo hacer que esta configuración funcionara en una máquina de desarrollo y confiaba mucho en verificar la información de solicitud usando firebug para asegurarme de que las cookies no se usaran. De hecho, sentí que las respuestas a continuación no tenían suficientes detalles, pero tal vez debería haber agregado más información a mi pregunta. Resulta que después de implementar mi sitio web estático en un host diferente, simplemente "funcionó". Voy a actualizar mi pregunta para incluir detalles sobre mi configuración. – ak3nat0n

Respuesta

7

asegurarse de que tiene los siguientes valores: web.config

  • <sessionState mode="Off" />
  • <authentication mode="None" />

creo que eso es todo, aunque no lo he probado.Para estar seguro, usted podría utilizar el asesoramiento de Creating Static Content Website in IIS 7 que desactiva todos los módulos y sólo les vuelve a activar cuando sea necesario:

<system.webserver> 
    <modules> 
     <clear /> 
     <add name="StaticFileModule" ... /> 
     ... 
    </modules> 
    ... 
</system.webserver> 

PS: Ver this answer para obtener consejos sobre cómo establecer valores de caché.

1

La idea básica:.

  1. Hacer una nueva página web en IIS (asignarlo a un subdominio o que sea un sitio totalmente independiente suddomains A veces no son suficientes si los usuarios acceden a su sitio de http://example.com en lugar de http://www.example.com ya que en el primer caso, las cookies probablemente también se enviarán al nuevo subdominio).
  2. DESACTIVAR ASP.NET todos juntos en IIS para su nuevo sitio. Si se acaba de servir contenido estático a continuación, no es necesario activar ASP.Net
  3. cargar su contenido estático y enlazar distancia

Referencia:
- Stopping cookies being set from a domain (aka "cookieless domain") to increase site performance
- How to respect "Serve static content from a cookieless domain" page speed rule in IIS6?
- Avoiding cookies while requesting static content

0

¿Has probado Response.Cookies.Clear() al final del método Load de la página? Esto debería eliminar todas las cookies del objeto Response y no se enviarán cookies al cliente. Esto también podría hacerse en un módulo web o un HttpHandler.

+0

El concepto que está buscando no es eliminar las cookies, pero no usarlas en absoluto –

+0

¿Entonces no quiere que ASP.NET cree una sesión? ¿Es lo que él está buscando? –

Cuestiones relacionadas