Pregunta

He escrito un MembershipProvider personalizado que utiliza un esquema de base de datos personalizado para almacenar los miembros, pero tengo problemas para descubrir cómo implementar el proveedor. Mi servidor de destino ejecuta IIS7, y puedo navegar a un cuadro de diálogo para agregar un proveedor de usuarios .NET, pero en lugar de permitirme seleccionar el ensamblado que contiene el proveedor & Amp; luego la clase, proporciona un menú desplegable con un par de proveedores escritos de MS.

¿Debo colocar mi ensamblaje en una ubicación específica para que IIS descubra mi clase MembershipProvider? Si es así, ¿a dónde debe ir el .dll? De lo contrario, ¿cómo le digo a ASP.Net que use mi MembershipProvider? Todos los ejemplos que he visto simplemente hacen referencia al nombre de clase totalmente calificado, pero no mencionan cómo se debe implementar el archivo.

¿Fue útil?

Solución

Si busca su aplicación en el archivo web.config, debería tener una sección llamada system.web. Dentro de eso hay un elemento de membresía con una lista de proveedores. Debería poder agregar su proveedor y establecer un proveedor predeterminado allí. Una vez que su proveedor de membresía esté registrado de esta manera, también debería poder seleccionarlo como predeterminado para esa aplicación desde IIS.

<system.web>
    ...
    <membership defaultProvider="MyMembershipProvider" 
                    userIsOnlineTimeWindow="15">
        <providers>
            <add name="MyMembershipProvider"
                             type="Common.Auth.MyMembershipProvider, Common" 
                             connectionStringName="MyAuthDBConnectionString" 
                             enablePasswordRetrieval="true" 
                             enablePasswordReset="true" 
                             requiresQuestionAndAnswer="true" 
                             writeExceptionsToEventLog="false" />
        </providers>
    </membership>
    ...
</system.web>

El elemento de proveedores le permite registrar múltiples proveedores para elegir. Otra característica es que puede borrar los proveedores de membresía registrados en otros archivos de configuración en la máquina. Esto puede hacer que la configuración de su aplicación sea menos propensa a errores más adelante. Para hacerlo, agregue & Lt; clear / & Gt; elemento antes del primer proveedor de membresía (el elemento < add / >) en la lista.

<system.web>
    ...
    <membership defaultProvider="MembershipProvider1">
        <providers>
            <clear />
            <add name="MembershipProvider1" ... />
            <add name="MembershipProvider2" ... />
        </providers>
    </membership>
    ...
</system.web>

Si desea registrar el mismo proveedor con múltiples aplicaciones web simplemente usando el Administrador de IIS, deberá colocar el ensamblado en el GAC y agregar el proveedor a uno de los archivos de configuración de la máquina. Esto suele ser más trabajo para poco beneficio al implementar una sola aplicación.

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