Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

304
Vistas
compartir cookies de autenticación entre .Net Core Web Apps

Me gustaría autenticarme en la aplicación 1 y luego hacer clic en un enlace a la aplicación 2 y no tener que autenticarme. Me imagino un escenario muy común. Y este documento dice que es muy fácil de lograr. Así que creé una aplicación de autenticación de identidad palabra por palabra de las instrucciones aquí .

Apliqué las 2 líneas adicionales de código como se sugiere en el documento

 services.AddDataProtection() .PersistKeysToFileSystem("{PATH TO COMMON KEY RING FOLDER}") .SetApplicationName("SharedCookieApp"); services.ConfigureApplicationCookie(options => { options.Cookie.Name = ".AspNet.SharedCookie"; });

Luego lo implementé en mi servidor IIS local (https://localhost/App1) y funcionó perfectamente.

Para App2, apliqué las mismas dos líneas de código anteriores y las implementé en mi servidor IIS local (https://localhost/App2). Después de autenticarme en la aplicación 1 y luego hacer clic en el enlace a la aplicación 2, recibí el error "No se especificó ningún esquema de autenticación y no se encontró ningún esquema de desafío predeterminado". Supuse que tenía que faltar algo en App2, pero el documento solo ubica esas dos líneas de código. De todos modos, intenté agregar cada una de las siguientes (no todas al mismo tiempo) 4 opciones para hacerlo feliz y nada funcionó.

 services.AddAuthentication("Identity.Application"); services.AddAuthentication();//fails asking for default schema and challenge services.AddDefaultIdentity<IdentityUser>().AddEntityFrameworkStores<SharedAuthContext>();//fails services.AddAuthentication(options => { options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme; });

Obviamente, falta algo en App2, pero no puedo resolverlo.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

CookieAuthenticationDefaults.AuthenticationScheme es una cadena constante con el valor "Cookies" .

El marco de identidad utiliza diferentes nombres para sus cookies .

  • IdentityConstants.ApplicationScheme -> "Identity.Application"
  • IdentityConstants.ExternalScheme -> "Identity.External" (no estamos interesados en esto)

Así que deberías cambiar los nombres a

 services.AddAuthentication(options => { options.DefaultScheme = "Identity.Application"; options.DefaultChallengeScheme = "Identity.Application"; }).AddCookie("Identity.Application", options => { ... });

Consulte también los documentos de Microsoft sobre cómo compartir cookies entre aplicaciones.

https://docs.microsoft.com/en-us/aspnet/core/security/cookie-sharing?view=aspnetcore-5.0

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda