sesion - Cookies de sesión ASP.NET: especificando el dominio base
session mvc net core (3)
Por defecto, ASP.NET configurará sus cookies para usar "mydomain.com" como su base. Prefiero que usen "www.midominio.com" en su lugar, para que pueda tener otros subdominios "sub.midominio.com" que no contengan cookies.
He profundizado en los objetos Session y Cookie, y aunque puedo encontrar la forma de configurar el dominio para una sola cookie, no veo una forma de configurarlo para todas las cookies de sesión.
¿Alguien tiene ideas?
La sesión usa solo una cookie, entonces ¿por qué no configura el dominio solo para la cookie ASP.NET_SessionId?
Me doy cuenta de que esta es una vieja pregunta, pero ¿podrías usar el atributo de domain
de la sección de configuración de httpCookies en lugar de hacer esto en el código?
<httpCookies domain="String"
httpOnlyCookies="true|false"
requireSSL="true|false" />
Cree un ISessionIDManager , ya que solo desea cambiar el dominio de las cookies, dejaremos que el predeterminado haga todo el trabajo.
Esto se configura en web.config en el elemento sessionState en <system.web>
.
<sessionState sessionIDManagerType="MySessionIDManager" />
Y la implementación.
public class MySessionIDManager: SessionIDManager, ISessionIDManager
{
void ISessionIDManager.SaveSessionID( HttpContext context, string id, out bool redirected, out bool cookieAdded )
{
base.SaveSessionID( context, id, out redirected, out cookieAdded );
if (cookieAdded) {
var name = "ASP.NET_SessionId";
var cookie = context.Response.Cookies[ name ];
cookie.Domain = "example.com";
}
}
}