19

: ASP.NET 4.0 Web Forms con C#La integración de Facebook con la plataforma de autenticación de codificación existentes suscripción de ASP.NET

Tenemos un sitio web con los datos de acceso existentes gestionados por proveedor de suscripciones de ASP.NET.
Ahora el cliente quiere agregar Facebook Conéctese.

Así que en el registro estoy dando un botón Registrarse con Facebook.
¿Cómo procedo a integrar una autenticación exitosa de Facebook a mi proveedor de membresía?

Lo que planeo es crear un nombre de usuario con identificador único como nuevo usuario en Membresía ASP.NET y vincularlo a otra tabla que contenga otros usuarios de identificación abierta (porque en el futuro planeamos extenderlo a Google, Twitter , En vivo y todo). ¿Es ese el mejor método?

+1

He creado un tutorial simple que integra la Autenticación de Facebook con una Membresía ASP.Net existente. Mira este [enlace] (http://niftyandcrackerjack.com/asp-net-membership-with-facebook-authentication-part-two). –

+0

El siguiente enlace es realmente útil: http://withasp.net/facebook-authentication-with-asp-net/ –

+2

ambos enlaces anteriores están rotos – CodeToad

Respuesta

6

Bueno, creo que tiene dos opciones aquí.

Opción A: Uso del Facebook Registration Plugin y luego hacer el usuario registrado como usuario normal, es decir ningún id de usuario FB se almacena en la base de datos, sólo tiene un tipo de usuario.

Opción B: Pídeme email permission dentro de su FB conectar y obtener el correo electrónico del usuario con el fin de comparar en contra de su tabla de usuario y hacer un partido (el ID de usuario mesa con FB UID) en caso de que se encuentra en su base de datos .

HTH!

+1

hay un ligero problema con el permiso de correo electrónico, ya que Facebook nos permite alterar la identificación del correo electrónico. – naveen

+4

Solo compara el correo electrónico la primera vez que lo visita, inicia sesión o se registra en su sitio. Una vez que lo hacen, puede vincular ese UID de Facebook con la cuenta de su sitio, y los siguientes cambios de correo no le afectarán porque puede comparar usando UID de FB. –

+0

Sí, ya entiendo ... – naveen

6

¿Espera, hay un kit de herramientas para desarrolladores de Facebook en Codeplex? Ojalá hubiera sabido eso. :-p

He notado que la mayoría de los sitios que le permiten iniciar sesión con Facebook o su correo electrónico solo le permitirán hacer UNO O EL OTRO. Por ejemplo, tengo una cuenta de LivingSocial.com, y aunque ofrecen FB, solo puedo iniciar sesión con mi correo electrónico (así es como se creó mi cuenta). Tengo una cuenta de BrazenCareerist, pero eso me permite iniciar sesión SÓLO con mi FB (aunque admiten correo electrónico) porque la cuenta se creó a través de FB Connect/Open-Graph.

No me gustó ese enfoque, ya que me pareció limitado, así que quería que los usuarios pudieran iniciar sesión como quisieran. Usted tiene 4 flujos:

  1. usuario se registra para el sitio con FB y después las señales con FB en el retorno
  2. usuario se registra para FB y después las señales con el correo electrónico en el retorno
  3. usuario se registra con el correo electrónico y luego las señales en la FB en la declaración de
  4. usuario se registra con el correo electrónico y después las señales en con el correo electrónico de retorno

Si se inscriban en facebook, agarra su dirección de correo electrónico para su uso futuro (a través de la API de FB) .

Suponiendo que ya se hayan registrado en su sitio, cuando inician sesión con FB, no es necesario solicitar una contraseña.(consulte su documentación http://developers.facebook.com/docs/authentication/)

Si inician sesión con su dirección de correo electrónico, deberán ingresar una contraseña. Probablemente crearon en si se registraron con su dirección de correo electrónico; pero el truco es que si se registraron con FB, es posible que NO tengan una contraseña.

Creé una página que, al registrarse en FB, solicita una contraseña. Le da un mensaje amistoso como "Felicitaciones! Se crea su cuenta en [nuestro sitio]. Para su privacidad, Facebook no nos dice cuál es su contraseña. Cree una contraseña para [nuestro sitio] a continuación. inicia sesión con Facebook, nunca usarás esto). "

Espero que ayude.

+0

No es posible Dave. Entonces, ¿de dónde sacaré el nombre de usuario y aseguraré que sea único? Quiero algo así como los modelos de stackoverflow donde combinan openids. Es mi intuición de que stackoverflow genera un usuario para cada nuevo registro y le une los identificadores abiertos. Por cierto, http://facebooktoolkit.codeplex.com/ ahora es obslete http://facebooktoolkit.codeplex.com/ es el SDK que la mayoría de los desarrolladores utilizan a partir de ahora. – naveen

+0

Buen punto: estaba pensando en un sistema en el que el "nombre de usuario" es la dirección de correo electrónico Y la cuenta de correo electrónico de la cuenta de Facebook Connect era la misma que la cuenta a la que intentaban conectarse en su sitio. En ese caso, creo que funcionará, pero ese es un caso de uso limitado, y como usted me señaló, no siempre es aplicable. –

+1

Creo que http://facebooksdk.codeplex.com es el proyecto CodePlex correcto, Naveen – GrahamMc

2

El proyecto Facebook C# SDK en CodePlex ofrece algunos excelentes proyectos de muestra para comenzar. El que he estado utilizando es el ejemplo CS-AspNetWebForms-RegistrationForm. Es bastante fácil de seguir, pero tengo algunos problemas, como obtener el ID de usuario de Facebook.

La pieza que falta del rompecabezas es tomar los campos que obtienes del Registro de Facebook y llevarlos al Proveedor de Membresía. Dependiendo de su nivel de experiencia, no debería ser tan difícil trabajar.

Cuestiones relacionadas