Si necesito implementar mi propia clase MembershipProvider
, tengo que implementar todos los servicios que necesito, ¿qué ventaja obtengo al implementar una clase derivada de MembershipProvider
en comparación con solo escribir mi propia clase MySecurity
?¿Cuáles son las ventajas de un MembershipProvider personalizado en ASP.NET?
Respuesta
Conseguir un sistema de autenticación correcta es difícil, porque es muy fácil de construir algo que sólo aparece a trabajar. No querrá encontrarse en una situación en la que un año después del despliegue descubra finalmente que su sistema se había descifrado seis meses antes.
La construcción de su sistema utilizando el modelo MembershipProvider
le ayuda a hacerlo bien al proporcionarle un esqueleto que se presta para ser implementado correctamente. Solo necesita completar con precisión un conjunto de métodos, y puede confiar en la arquitectura de alto nivel proporcionada para asegurarse de estar utilizando los métodos correctos en los lugares correctos.
Obtener implementaciones de métodos individuales realizadas right es comparativamente fácil. Puede ponerlos en su prueba de unidad y tener la confianza de que hacen lo que se supone que deben hacer.
Dicho de otra manera, no tiene que preocuparse si comprueba su token de autenticación en los lugares correctos. Las partes de ASP.Net que llaman al proveedor de membresía saben cuándo hacerlo. Todo lo que tiene que hacer es implementar correctamente el cheque, y eso normalmente se reduce a una simple comparación.
Además, puede que no tenga que empezar desde cero. Tiene que optar por heredar de un proveedor existente y solo agregar la funcionalidad que desea que aún no proporciona.
Bueno, depende ... Lo encontré muy útil porque tuve que agregar el concepto de funciones, por lo que cada función tenía funciones asociadas a ellas, y así sucesivamente.
En ese caso, he implementado mis propias clases de miembros y RoleProvider que contenían el método AddFunctionToRole ... método IsFunctionAssignedToUser ... etc etc
Un poco más de información sobre ese here
La principal ventaja de la escritura su propia clase MembershipProvider es que es considerada por ASP.NET como un componente de primera clase y puede usar las interfaces estándar para autenticación y autorización y solo tiene que cambiar el archivo de configuración más adelante si desea utilizar un proveedor diferente.
Si solo necesita algo "pequeño" diferente de uno de los proveedores de membresía predeterminados, entonces probablemente debería considerar heredar de uno de los proveedores incorporados o uno de los mejores proveedores de terceros y ampliarlo con el adicional funcionalidad que necesita o anula la funcionalidad que desea cambiar.
Técnicamente, debería ganar cierto nivel de portabilidad: al usar el modelo existente, debería poder colocar su proveedor en otras aplicaciones web, para reemplazar su sistema de membresía con muy poco esfuerzo.
Desafortunadamente, la cantidad de terceros que parecen haber seguido su propio camino en lo que se refiere a membresía/perfiles es bastante impresionante, y también bastante deprimente, especialmente cuando se esfuerza al escribir algo basado en eso.
Dicho esto, utilizando el modelo de proveedor de membresía, todos los demás controles que usan membresía "simplemente funcionan" (es decir, Login, LoginStatus, LoginName, etc.) sin tener que escribir versiones personalizadas de ellos también.
- 1. ¿Cuáles son las ventajas de usar Qt?
- 2. ¿Cuáles son las ventajas de Lazy Evaluation?
- 3. ¿Cuáles son las ventajas de usar Automapper?
- 4. Cuáles son las ventajas de VistaDB
- 5. ¿Cuáles son las ventajas de utilizar Rubinius
- 6. ¿Cuáles son las ventajas de Perforce?
- 7. ¿Cuáles son las ventajas prácticas del currying?
- 8. ¿Cuáles son las ventajas de un procesador de 64 bits?
- 9. ¿Cuáles son las ventajas de usar un errback?
- 10. ¿Cuáles son las ventajas de las macros de esquema?
- 11. ¿Cuáles son las ventajas de PyQt sobre PyGTK y viceversa?
- 12. ¿Cuáles son las ventajas reales de las colecciones inmutables?
- 13. ¿Cuáles son las ventajas de QAbstractItemModel en comparación con QStandardItemModel?
- 14. ¿Cuáles son las ventajas de Blocking Queue en Java?
- 15. ¿Cuáles son las ventajas de utilizar POCO en DataTables?
- 16. ¿Cuáles son las ventajas de usar Prolog en otros idiomas?
- 17. cuáles son las ventajas de usar plpgsql en postgresql
- 18. ¿Cuáles son las ventajas de concurrent.futures sobre multiproceso en Python?
- 19. ¿Cuáles son las ventajas de cargar DLL de forma dinámica?
- 20. ¿Cuáles son las ventajas del uso de Node.js vs PHP
- 21. ¿Cuáles son las ventajas y desventajas del Patrón de propiedades?
- 22. Cuáles son las ventajas de C# sobre Python
- 23. ¿Cuáles son las 'grandes' ventajas de tener Poco con ORM?
- 24. node.js - cuáles son las ventajas de usar jade
- 25. ¿Cuáles son las ventajas de definir una clave externa
- 26. ¿Cuáles son las ventajas y desventajas de usar esquemas XML?
- 27. ¿Cuáles son las ventajas de usar SVN sobre CVS?
- 28. ¿Cuáles son las ventajas y desventajas de usar OpenID?
- 29. ¿Cuáles son las ventajas de LePUS3 sobre UML?
- 30. ¿Cuáles son las ventajas de usar Objective-C sobre C++
Sí, pero ¿no es el detalle de obtener un sistema de autenticación en el código que tengo que suministrar para los métodos? Lo entiendo completamente, por ej. la ventaja de _utilizar _ el Proveedor de Membresía Sql existente, pero si necesito, p. un Access, todavía necesito codificarlo _all_ myself. – ProfK
No necesita codificarlo todo usted mismo: hay código en ASP.Net que llama a un proveedor en el que puede confiar que es correcto, y puede heredar/extender y proveedor existente. Actualizado mi respuesta para explicar. –
@Joel, gracias. Probablemente tenga que analizar un poco más la imagen más grande, y ver dónde y cómo se usará mi proveedor, porque si son solo mis formularios los que lo llaman explícitamente, esencialmente tengo que empezar desde cero porque casi todos los métodos de la clase base son abstractos. y vacio – ProfK