2009-07-28 28 views
13

Implementé un proveedor de membresía personalizado utilizando LINQ to SQL. Cuando agregué el proveedor de membresía a mi sitio web asp.net mvc en la configuración web, la página de inicio de sesión dejó de funcionar.ASP.NET MVC Proveedor de membresía personalizado Error Web.config

Mi configuración Web.config:

<membership> 
    <providers> 
    <clear/> 
    <add 
     name="MyMembershipProvider" 
     type="MyMembership.MyMembershipProvider" 
     connectionStringName="ApplicationServices" 
     enablePasswordRetrieval="false" 
     enablePasswordReset="true" 
     requiresQuestionAndAnswer="false" 
     requiresUniqueEmail="false" 
     passwordFormat="Hashed" 
     maxInvalidPasswordAttempts="5" 
     minRequiredPasswordLength="6" 
     minRequiredNonalphanumericCharacters="0" 
     passwordAttemptWindow="10" 
     passwordStrengthRegularExpression="" 
     applicationName="/"/> 
    </providers> 
</membership> 

El error que consigo es la siguiente:

de error del analizador Mensaje: proveedor de suscripciones por defecto no se pudo encontrar.

Error de origen:

Line 53:   <forms loginUrl="~/Account/LogOn" timeout="2880"/> 
Line 54:  </authentication> 
Line 55:  <membership> 
Line 56:   <providers> 
Line 57:    <clear/> 

estoy atascado en donde proceder desde aquí. No puedo establecer un punto de corte ya que el error parece ser invocado fuera del código principal.

Estoy utilizando el código de membresía estándar que viene con el proyecto predeterminado de asp.net mvc. El proveedor de membresía se implementa en un ensamble separado que se incluye en el proyecto web.

Cualquier ayuda sería muy apreciada.

Gracias!

Respuesta

26

Intente agregar "Predeterminado = MiMembresíaProveedor" en la etiqueta de membresía. Si no especifica el valor predeterminado, intentará usar el estándar ASP.

+3

añadí y ¡funcionó! ¡Gracias! – Lukasz

+3

Así que si le da a ASP.Net una lista de exactamente un proveedor configurado ('' se supone que elimina a todos los demás proveedores), elige como uno predeterminado * no * configurado. Increíble. Muy contento de haber encontrado esto. –

3

2 cosas que puedes probar. Número uno: la depuración es posible, basta con interrumpir todas las excepciones y descargar los símbolos de depuración, incluido el código fuente de .NET framework.

Número dos: ya que su tipo se define en otro montaje, la cadena en type probablemente necesita ser una cadena de montaje de tipo cualificado, es decir, es como

type="MyMembership.MyMembershipProvider, MyAssemblyName" 
Cuestiones relacionadas