Pregunta

Estoy recibiendo mi aplicación web en el servidor Windows 2008 con IIS 7.5, Tengo 2 aplicaciones web: 1. El primero es el núcleo de servicio SSO (Single Sign-on) con una página de inicio de sesión. 2. otra aplicación Web se encuentra en el mismo servidor web que utilizan la primera aplicación para SSO.

Estoy utilizando el WIF RTM a la aplicación SSO,

Por lo general, se está ejecutando bien sin ningún problema, el usuario puede iniciar sesión tirar el SSO y redirigir hacia atrás la página de inicio. pero cuando me conecto tiro la primera sso, a continuación, reinicie el IIS, si vuelvo a la segunda aplicación y actualizar la página, tengo el siguiente error:

  

Error de servidor en aplicación '/'.   Clave no válida para su uso en estado.   Descripción: Una no controlada   excepción ocurrió durante el   la ejecución de la solicitud Web actual.   Revise el seguimiento de la pila para obtener más   información acerca del error y dónde   se originó en el código.

     

Detalles de la excepción:   System.Security.Cryptography.CryptographicException:   Clave no válida para su uso en especificada   estado.

     

Fuente de error: Excepción no controlada   se generó durante la ejecución de   la solicitud Web actual. Información   sobre el origen y la ubicación de   la excepción pueden identificarse utilizando   el seguimiento de pila excepción a continuación.

     

Seguimiento de la pila:

     

[CryptographicException: Clave no válida   para su uso en el estado especificado. ]
  System.Security.Cryptography.ProtectedData.Unprotect (byte []   encryptedData, Byte [] optionalEntropy,   DataProtectionScope alcance) 425
  Microsoft.IdentityModel.Web.ProtectedDataCookieTransform.Decode (byte []   codificada) 59

     

[InvalidOperationException: ID1073: A   CryptographicException ocurrió cuando   intentar descifrar la cookie utilizando   la API ProtectedData (ver interior   excepción para más detalles). Si usted es   usando IIS 7.5, esto podría ser debido a   el ajuste en el LoadUserProfile   Grupo de aplicaciones que se establece en false. ]   Microsoft.IdentityModel.Web.ProtectedDataCookieTransform.Decode (byte []   codificada) 151
  Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ApplyTransforms (byte []   galletas, salientes de Boole) 109
  Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken (XmlReader   lector, SecurityTokenResolver   tokenResolver) 634
  Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler.ReadToken (byte []   razón, SecurityTokenResolver   tokenResolver) 105
  Microsoft.IdentityModel.Web.SessionAuthenticationModule.ReadSessionTokenFromCookie (byte []   SessionCookie) 239
  Microsoft.IdentityModel.Web.SessionAuthenticationModule.TryReadSessionTokenFromCookie (SessionSecurityToken y   sessionToken) 59
  Microsoft.IdentityModel.Web.SessionAuthenticationModule.OnAuthenticateRequest (Object   remitente, EventArgs eventArgs) 52
  System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute ()   68 System.Web.HttpApplication.ExecuteStep (IExecutionStep   paso, Boolean y completedSynchronously)   75

     

________________________________________ Información de la versión: Microsoft .NET   Versión del Marco: 2.0.50727.4927;   ASP.NET Versión: 2.0.50727.4927

la sesión del usuario se almacenan utilizando el modo de sesión de SQL Server, estoy usando una base de datos especial para esto.

He intentado mucho y no puedo volver a procedimiento de este problema en mi equipo local (Windows 7). ¿alguien tiene experiencia similar? ¿Me puede decir cómo resolver este problema?

¿Fue útil?

Solución

Esto podría deberse a que el grupo de aplicaciones de usuario no tiene perfil de usuario persistente. Para corregir esta situación sólo se puede ejecutar algo como ese usuario:

runas /user:<domain>\<user> cmd

Y esto va a crear el perfil. Posteriormente los datos se deben descodificarse después de reiniciar IIS.

Otros consejos

Finalmente resolver este problema por el cambio el usuario del grupo de aplicaciones a un usuario local. El problema es causado probablemente por el SSO está alojado en un sistema operativo de 64 bits, este problema no existe si el anfitrión de la SSO en un equipo de 32 bits (aunque yo uso un usuario de dominio para el grupo de aplicaciones).

Ahora uso ApplicationPoolIdentity o servicio de red, a excepción desaparecieron después de que reinicie IIS.

Gracias a todos ustedes y estoy muy contento de compartir mi solución con usted.

Parece que hay algún tipo de problema de seguridad cuando tiene varias aplicaciones que comparten el mismo dominio en Windows Server 2008 con IIS 7.5

Si usted tiene URLs http://ourdomain.com/app1 y http://ourdomain.com/app2 puede iniciar sesión en una aplicación con WIF pero cuando se accede a la otra aplicación que obtener este error. Esto se debe a que la cookie es para el dominio pero si Está creados por app1 continuación app2 no pueden acceder a él.

Así que la solución es o hacer como Aaron y el uso de un usuario específico que tiene los derechos de acceso, o como lo hicimos, separar las aplicaciones en dos dominios diferentes, es decir, http://app1domain.com/ y http://app2domain.com/.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top