La historia de mis desventuras

Palabras más, palabras menos sobre desarrollo de software.

MembershipProvider y .Net Framework 4.0

Posted by Jhonny López Ramírez en 24 enero 2011

dotnet4logo
Caso

Decides implementar un proveedor de membresía (o pertenencia) propio para resolver la autenticación y autorización de tus sitios web por medio de información almacenada en una base de datos de terceros (Oracle, MySql, etc.) o de servicios que están publicados a través de WCF. Adicionalmente, tendrás varios sitios web que usarán esta autenticación así que decides crear un proyecto de tipo biblioteca de clases (Class Library) con Visual Studio 2010, es decir, .Net Framework 4.0.

Como siempre has obrado en estos casos, sabes que debes escribir un proveedor de membresía personalizado que herede de la clase MembershipProvider; antes de eso debes referenciar la dll System.Web que contiene el espacio de nombres System.Web.Security. Escribes un código similar a este:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Security;
using System.Web.Security;
using System.Configuration.Provider;
using System.Configuration;
using System.Web.Configuration;

namespace MyNamespace
{
    public class MyMembershipProvider : MembershipProvider

Te das cuenta que ni el intellisense ni una compilación logran reconocer a MembershipProvider como clase dentro del espacio de nombres System.Web.Security. Luego, en un proyecto web te das cuenta que MembershipProvider sigue estando en dicho espacio de nombres, lo cual aumenta la confusión.

Causa

En .Net Framework 4.0, la clase MembershipProvider, clase abstracta de la que deben heredar todos los proveedores de membresía ASP.NET personalizados, ha sido movida al ensamblado System.Web.ApplicationServices. Por defecto, los proyectos web en Visual Studio referencian dicho ensamblado, las bibliotecas de clases (Class Library) no.

Solución

Se debe referenciar en el proyecto de tipo biblioteca de clases (Class Library) el ensamblado System.Web.ApplicationServices. Después de esto se podrá hacer uso de la clase MembershipProvider del espacio de nombres System.Web.Security.

8 comentarios to “MembershipProvider y .Net Framework 4.0”

  1. Darling said

    Buen aporte, como siempre tan efectivo🙂

  2. Matias Clemente said

    Excelente comentario, me volvi loco, y hasta habia desistido. Gracias

  3. The Unix Dynasty said

    Los trabajadores de Putama Game$ son unos putos cabrones racistas 100%, si no eres francés no te hacen ni puto caso ni en el foro ni en soporte (si te pasa algo te tienes que joder), sobre todo este racismo es antiespañol (aunque odian a todos los no franceses)

    ¿Lo ves? También os defendía a vosotros

    A ver si leemos antes de acusar

  4. ximovai said

    muchas gracias! me has salvado la vida hoy!

  5. Gracias

  6. mlizbeth said

    o.O yo no tuve ese problema :S Con usar using System.Web.Security me funcionó

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: