2011-12-24 27 views
5

He visto mucha documentación sobre integración entre sitios web ASP .NET y Facebook, pero no he encontrado un ejemplo de trabajo simple, incluso usando Facebook C# SDK.Autenticación del sitio web ASP.NET con facebook

Todo lo que quiero es un ejemplo de "inicio de sesión con Facebook" y para obtener información básica del usuario (como nombre, correo electrónico y foto).

¿Pueden ayudarme, por favor?

¡Muchas gracias!

+1

Aunque esto parece un poco repetida pregunta básica, es muy cierto, incluso mientras se estaba desarrollando algo que no podía encontrar ejemplos dignos y vi todo tipo de diferentes codifica todas las publicaciones de blog. – gideon

Respuesta

9

como usted dice using Facebook C# SDK, entonces aquí es ruta de acceso y un código para la aplicación de la lona:

1- Crear la aplicación Web de Visual Studio
2- instalar Nuget y obtener por Nuget Facebook C# SDK
3 de https://developers.facebook.com/apps/ crea y configura tu aplicación
4- Su web.config para la integración de Facebook:

<configuration> 
    <configSections> 
    <section name="facebookSettings" type="Facebook.FacebookConfigurationSection" /> 
    </configSections> 
    <facebookSettings appId="123..." appSecret="abc...." siteUrl="http://apps.facebook.com/myapp/" canvasPage="http://app.facebook.com/myapp" secureCanvasUrl="https://myapp.com/" canvasUrl="http://myapp.com/" cancelUrlPath="http://www.facebook.com/" /> 
... 

Mediante el uso de SDK, puede analizar la solicitud o una galleta escrito por facebook js SDK

FacebookWebContext fbWebContext = new FacebookWebContext(); 
//Check if user auhtenticated 
bool IsAuthenticated = fbWebContext.IsAuthenticated(); 

Aquí se puede contar de amigo firmado:

FacebookWebClient fbWebClient = new FacebookWebClient(); 
dynamic result = fbWebClient.Get("me/friends"); 
var friends = result["data"]; 
int frienCount = friends.Count; 

Por el lado del cliente:

<body> 
<div id="fb-root"></div> 
<script> 

window.fbAsyncInit = function() { 
    FB.init({ 
    appId: '123...', 
    status: true, 
    cookie: true, 
    xfbml: true, 
    oauth:true }); 
}; 
(function() { 
    var e = document.createElement('script'); e.async = true; 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e);    
}()); 

<!-- rest of your html --> 

</body> 

Para inicio de sesión & pedir permiso a javascript

FB.getLoginStatus(function(response) { 
     console.log(response); 
     if ((response.status)&&(response.status=='connected')) { 
      //successs 
     } else { 
      //user declined 
      }, {scope:'user_likes, offline_access'} 

    }); 

prefiero en mi proyecto de inicio de sesión de usuario del lado del cliente por lo tanto aún no registrados tienen página de destino, si por ejemplo enviar el formulario a continuación, que llamo bloque de código de seguridad.

Nota: debe configurar el letrero P3P para que el explorador de Internet lea/escriba las cookies en función de su servidor. para IIS, global.asax:

protected void Application_BeginRequest(Object sender, EventArgs e) 
{ 

    HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\""); 

} 

Volia

+1

¡Funcionó perfectamente! ¡Muchas gracias! –

+0

@asdf_enel_hak no pude encontrar FacebookWebContext –

+0

@asdf_enel_hak tampoco pude encontrar FacebookWebClient –

Cuestiones relacionadas