update net mvc framework asp asp.net asp.net-mvc-4 ravendb

asp.net - net - Cómo usar SimpleMembership en MVC sin Entity Framework



entity framework mvc 5 (3)

Aquí está mi implementación para mongodb. Tal vez pueda ayudar https://github.com/malibeg/MongodbSimpleMembershipProvider#readme

¿Cuáles son los pasos necesarios para usar SimpleMembership (ASP.NET MVC 4) con RavenDB (u otras bases de datos) en lugar de SQL Server?

Estoy acostumbrado a anular el MembershipProvider pero, ¿cómo funciona con la nueva SimpleMembership?

Vi que hay un SimpleMembershipProvider, así que creo que debería anularlo, pero no sé si los métodos son solo para el almacenamiento de datos o si deberían contener lógica de negocios / validación) ...

¿Qué pasa con la configuración? Sé que el método InitializeDatabaseConnection normalmente es responsable de inicializar todo el shebang, pero no creo que deba llamarlo si no uso Entity Framework.

Desafortunadamente, no encontré muchos recursos sobre el nuevo SimpleMembership, excepto dos enlaces que no me han sido muy útiles:

http://igambin.blogspot.ca/2012/08/simplemembershipprovider-huh.html

http://blog.osbornm.com/archive/2010/07/21/using-simplemembership-with-asp.net-webpages.aspx


Así que esto es lo que encontré después de observar algunos de los códigos fuente (MVC4).

http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/553690ac9488#src%2fWebMatrix.WebData%2fExtendedMembershipProvider.cs

SimpleMembership es una implementación de la clase abstracta ExtendedMembershipProvider. El código dentro de SimpleMembership es en su mayoría operaciones de SQL y algunas llamadas al subyacente (llamado "anterior" en la documentación) MembershipProvider.

No creo que sea de ninguna utilidad (en mi caso) anular SimpleMembership ya que su implementación está principalmente vinculada a SQL Server. En cambio, por lo que entiendo, debo implementar ExtendedMembershipProvider. Luego, al configurar esta implementación en el archivo web.config, el ayudante de WebSecurity omitirá SimpleMembership (implementación predeterminada) y llamará a mi implementación de ExtendedMembershipProvider.

No creo que vaya a hacer esto pronto, ya que parece incluso más complicado que antes (más métodos para implementar) ... pero aún es factible.

Sin embargo, dicho todo esto, estoy un poco decepcionado de que todavía tengamos que trabajar con MembershipProvider , que, en mi humilde opinión, está lejos (un montón de cosas estáticas e internas) de todo lo relacionado con la inyección de dependencia que tanto amamos con ASP. Net MVC / WebApi.

Editar 1

Esta pregunta fue formulada antes de que Jon Galloway escribiera este tutorial: weblogs.asp.net/jgalloway/archive/2012/08/29/…

Pero mi respuesta sigue siendo válida, ya que esto (tomado del artículo de Jon Galloway) lo resume:

Tenga en cuenta que SimpleMembership aún requiere algo de SQL Server: no funcionará con MySQL, bases de datos NoSQL, etc. Puede mirar el código en WebMatrix.WebData.dll usando una herramienta como ILSpy si desea ver por qué: hay lugares donde se ejecutan las instrucciones SQL específicas de SQL Server, especialmente al crear e inicializar tablas. Parece que es posible que pueda trabajar con otra base de datos si creó las tablas por separado, pero no lo he probado y no se admite en este momento.


SimpleMembership no está realmente destinado a ser utilizado con los antiguos MembershipProviders, ya que no cumple todos los mismos contratos que se suponen de los MembershipProviders normales. Está diseñado principalmente para su uso a través del asistente de WebSecurity.

Este enlace puede ser útil para obtener más información: Tutorial de páginas web