framework - dotnetopenauth con asp.net mvc es demasiado frustrante de usar
asp.net mvc tutorial (2)
Me he esforzado excesivamente por implementar una buena solución de identificación abierta en asp.net mvc, y en todos los lugares en los que me encuentro hay callejones sin salida absolutos. DotNetOpenAuth es demasiado grande y, por lo tanto, he sido incapaz de lograr que la implementación más simple, básica, absoluta y seca de la misma funcione.
NerdDinner tenía una implementación prometedora, pero es imposible rastrear todos los archivos y scripts dependientes. El sitio web DotNetOpenAuth prácticamente no tiene información que ayude, desafortunadamente, tampoco.
¿Alguien sabe de un enfoque simple para implementar esto que realmente explica y detalla cómo funciona con algún tipo de selector? Se habla mucho de eso, pero todo lo que encuentro es tan difícil de trabajar que realmente está impidiendo que todo mi equipo lo considere.
Queremos implementarlo de manera similar a como lo hace el desbordamiento de pila: usar un selector que abrirá una página de inicio de sesión si es necesario. Me doy cuenta de que hay mucho código que se debe hacer para esto, pero todo simplemente califica y elogia a dotnetopenauth, y nada realmente lo enseña. Incluso los proyectos de muestra no se abren o compilan.
Parece una biblioteca maravillosa, pero en realidad no hace clic para mí.
EDITAR: Tiene mucho más sentido ahora que me indicaron el lugar adecuado para comenzar. Es mucho menos frustrante si recorta todo el exceso y sabe exactamente dónde están los conceptos básicos.
Prueba esto. http://www.west-wind.com/Weblog/posts/899303.aspx .
dotnetopenauth incluye una aplicación mvc asp.net de muestra que demuestra cómo funciona. Lo evalué antes de cambiar a spring mvc pero pude desarrollar un POC funcional basado en la lógica del código de muestra. Si recuerdo correctamente, su vista incluye un cuadro de texto que envía el openid al controlador y el controlador usa la api dotnetopenauth para redirigirlo al proveedor de id abierto para la autenticación. La redirección incluye la url a su sitio a través de la cadena de consulta para que el proveedor de identificación abierta pueda redirigirlo nuevamente una vez que se autentique. Su controlador usará la api dotnetopenauth nuevamente cuando el usuario final sea redieccionado de nuevo a su sitio y usted pueda extraer la ID abierta. Sé que esto solo explica lo que ya sabes, pero como dije, no tuve ningún problema para que funcionara. publica tu código Codifiqué en una máquina virtual y no puedo acceder más, pero la estoy descargando ahora. Esto suena como un buen material de blog.
Supongo que probablemente comenzó con las nuevas plantillas de proyectos de DNOA que contienen MUCHO código y un esquema de base de datos bastante complejo, pero la mayoría solo es necesario para los proveedores de OAuth y OpenID, no para las partes confiadas. Esto puede ser un poco abrumador cuando intenta descubrir cómo integrarlo en una solución existente.
Recomendaría no comenzar con la plantilla del proyecto, pero con el proyecto de ejemplo que puede encontrar en la carpeta Samples / OpenIdRelyingPartyMvc. Incluso para minimizar esto, todo lo que necesita para un escenario muy básico (que sería, por ejemplo, simplemente poder mostrar la URL de OpenID del usuario que acaba de iniciar sesión) está en el método de Authenticate
del UserController
. Son sólo unas pocas líneas.
En mi caso, después de comenzar con esta muestra muy rápidamente, profundicé un poco más en el código generado por la plantilla del proyecto, aprendí y apliqué algunas mejoras útiles, pero muy ligeras y sencillas, y hasta ahora funcionan muy bien. .
BTW: Creo que DNOA no solo está perfectamente diseñado y el código bien documentado, sino que también es una de las bibliotecas de código abierto mejor soportadas que he usado. Apuesto a que Andrew dejará un comentario aquí en menos de 24 horas ;-)