asp.net-mvc-3 - nombre - obtener el usuario logueado asp.net mvc
AZURE ACS-Windows Live ID-¿Cómo obtengo el correo electrónico y el nombre del usuario autenticado? (7)
Aquí está el escenario:
Ejecución de la aplicación MVC 3 en el entorno AZURE Dev Autenticación en AZURE ACS implementado de la misma manera que se encuentra aquí http://msdn.microsoft.com/en-us/library/hh127794.aspx
Estoy tratando de obtener el nombre y el correo electrónico de los usuarios, pero no puedo encontrar una manera de configurar la "Regla de reclamo", de forma que obtendría un valor de texto claro, en vez de eso obtengo una cadena que parece estar encriptada . Entonces, ¿puedo configurar la regla de manera que la obtenga en texto claro? ¿O puedo descifrar el valor devuelto? ¿Es posible algo de esto o estoy mirando algo equivocado aquí?
Gracias
Posible pero requiere un poco de código para un pts personalizado:
https://gist.github.com/1867792
El código no se compila y las dependencias no están incluidas ... pero se basa principalmente en un sitio de inicio de sesión de pensamiento portado a MVC4 con los cambios que se muestran arriba.
Este es un #FAIL total por parte de Microsoft. Los usuarios, al iniciar sesión en su sitio usando Google u otros proveedores, tienen que aceptar primero. Luego simplemente pasan la información básica al sitio, el sitio lo usa y todos están felices.
Por cierto, puede obtenerlo del usuario con páginas de códigos entre bastidores, pero no es perfecto para el usuario, requiere un proceso manual, pero no obstante, el sistema LiveID no es más seguro para hacerlo, simplemente está roto.
Es posible por iFrame Trick.
<iframe src="https://login.live.com/login.srf?wa=wsignout1.0" frameborder="0"></iframe>
esto no te redirigirá a la página de MSN
IIRC, es contrario a la política de privacidad de Windows Live revelar el nombre del usuario o la dirección de correo electrónico como reclamos (a diferencia de Gmail o Yahoo!). Como tal, no es posible obtener esos reclamos de Live (a menos que sea Microsoft).
El único valor que puede obtener se llama identificador de nombre. Es único por dominio RP (es decir, no es un valor único por LiveID, pero difiere según el dominio). Esto también es intencional, por lo que no puede tener diferentes sitios web colaborando para rastrear a un usuario. Normalmente, obtendrá el identificador de nombre (llamado PUID) y luego lo incluirá en su base de datos en alguna parte para que sepa que lo ha visto antes. Luego el usuario se registra de su lado con el nombre, el correo electrónico, etc. y lo correlaciona con el PUID.
Por otro lado, LiveId también es compatible con OAuth2, por lo que puede obtener la información de perfil de usuario que necesita del usuario (con su consentimiento). Mira aquí .
Este blog discute la creación de un proveedor personalizado de Windows Live STS y luego la incorpora como un proveedor de identidad confiable en SharePoint.
Desafortunadamente, parece que el equipo de Azure simplemente no parece entender que las personas quieran obtener algo útil de la identificación de Windows Live.
También puede eliminar el ID de Windows Live como una opción para iniciar sesión haciendo clic en él en los proveedores de Identidad y luego desmarcando la asociación con su parte dependiente.
(Es realmente extraño que no puedas elegir eliminarlo = P)
Hay un par de técnicas para consultar los servidores Live para obtener información adicional acerca de los usuarios autenticados (siempre que, por supuesto, hayan dado su consentimiento). Puede hacer una personalización simple en su sitio usando javascript del lado del cliente para buscar la información como se muestra en el ejemplo aquí: http://msdn.microsoft.com/en-us/library/live/hh826534.aspx .
También es posible, aunque un poco más complicado, consultar los servidores de Live desde el código del lado del servidor. La aplicación de ejemplo descrita en http://dominicbetts.github.io/waad-acs-sample/index.html muestra un enfoque posible en una aplicación MVC4.
Parece que hay una manera, un poco intrincada, pero al convertirse en el intermediario y utilizar Live Connect API, puede lograr esta funcionalidad.
Por favor vea: http://code.msdn.microsoft.com/windowsazure/Get-Azure-ACS-work-40d588cc#content