2010-04-28 13 views
6

No estoy seguro de si esto pertenece a VS 2010 o al marco actualizado, pero ... estamos utilizando el proveedor de membresía de Oracle para autenticar usuarios. Antes de la actualización, todo funcionó bien, pero ahora Membership.ValidateUser(user, password) devuelve false a pesar de las credenciales válidas. No se lanza ninguna excepción, por lo que es difícil determinar cuál podría ser el problema. La herramienta de administración del sitio web en VS 2010 aún puede administrar usuarios y roles (más o menos), por lo que no tengo motivos para cuestionar la conectividad. ¿Cuál podría ser el problema?Membership.ValidateUser siempre devuelve falso después de la actualización a VS 2010/.NET 4.0

Respuesta

7

La respuesta (de acuerdo con this post) es especificar hashAlgorithmType="SHA1" en el Web.config:

<membership defaultProvider="OracleMembershipProvider" hashAlgorithmType="SHA1"/> 

Este no resolvió el problema para los usuarios existentes, pero los usuarios recién creados pueden iniciar sesión ahora.

+0

Supongo que para los usuarios recién creados, agregar 'hashAlgorithmType' es una pista falsa. Intenta agregar y autenticar a un nuevo usuario sin él. Sospecho que el problema está relacionado con la clave del equipo autogenerado. Estoy escribiendo algunas pruebas. actualizará la respuesta. –

+0

Los usuarios recién creados podrían autenticarse en otro cuadro (desarrollo), por lo que creo que el hashAlgorithmType solucionó el problema. –

+0

@nw - gracias por esta respuesta ya que tuve el mismo problema y estaba golpeando mi cabeza contra la pared durante horas. No parece haber ninguna documentación sobre tener que hacer este cambio al actualizar a .NET 4.0. – leora

0

Puede experimentar la disparidad de la máquina.

En web.config, la sección implícita machineKey utiliza cifrado autogenerado y claves de validación que nuevamente se codifican con el ID de la aplicación (AutoGenerate,IsolateApps).

¿Está probando con una instancia de aplicación diferente o en otra máquina?

¿El proveedor de membresía de Oracle es 2.0 o 4.0?

Y esto es solo una puñalada en la oscuridad, quizás esto lo lleve a una solución.

De .NET Framework 4 Migration Issues

tipos de miembros

Algunos tipos (por ejemplo, System.Web.Security.MembershipProvider) que se utilizan en la suscripción de ASP.NET se han movido de System.Web.dll el ensamblado System.Web.ApplicationServices.dll. Los tipos se movieron para resolver las dependencias de capas de arquitectura entre los tipos en el cliente y en los SKU de .NET Framework ampliados.

Las bibliotecas de clases que se han actualizado de versiones anteriores de ASP.NET y que usan tipos de membresía que se han movido pueden no compilarse cuando se utilizan en un proyecto ASP.NET 4. Si es así, agregue una referencia en el proyecto de biblioteca de clases a System.Web.ApplicationServices.dll

+0

no tenemos ningún problema compilación, y el problema se produce con Oracle proveedores de membresía 2.0 y 4.0. –

Cuestiones relacionadas