2011-01-07 7 views
1

Ich versuche, meine asp.net 4.0 (nicht MVC) Website mit Facebook zu integrieren.Facebook Integration mit ASP.NET 4.0 Website (nicht MVC) - facebooksdk

Ich möchte die authentifizierten Benutzerinformationen abrufen.

Die in facebooksdk aufgeführten Beispiele basieren auf MVC. Ich habe versucht, es auf meiner Website zu implementieren, aber Fehler zu bekommen. Ich bin getroffen.

Wenn jemand die facebook connect-Logik implementiert und die Benutzerinformationen mit facebook-C# -sdk abgerufen hat, bitte helfen Sie mir, wie das geht.

Ich habe das gleiche mit facebooktoolkit versucht, und ich bin in der Lage, die Benutzerinformationen zurückzuholen. aber das Toolkit hat Probleme mit. NET 4.0.

Sehr geschätzt Ihre Hilfe.

Antwort

2

Hier ist ein Beispiel-Code auf, wie eine Seite namens ProtectedPage.aspx zu schützen und eine Login-Seite haben Logon.aspx genannt:

Login.aspx:

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <h2> 
     Log In 
    </h2> 
    <p> 
     <fb:login-button></fb:login-button> 
    </p> 
    <div id="fb-root"> 
    </div> 
    <script src="http://connect.facebook.net/en_US/all.js"></script> 
    <script> 
     FB.init({ appId: 'your app id', status: true, cookie: true, xfbml: true }); 
     FB.Event.subscribe('auth.sessionChange', function (response) { 
      if (response.session) { 
       // A user has logged in, and a new cookie has been saved 
       window.location.reload(); 
      } else { 
       // The user has logged out, and the cookie has been cleared 
      } 
     }); 
    </script> 
</asp:Content> 

Login.aspx. cs

public partial class Login : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      FacebookApp app = new FacebookApp(); 
      Authorizer authorizer = new Authorizer(app); 
      if (authorizer.IsAuthorized()) 
      { 
       Response.Redirect(HttpUtility.UrlDecode(Request.QueryString["returnUrl"] ?? "/")); 
      } 
     } 
    } 

ProtectedPage.aspx.cs

public partial class ProtectedPage : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     FacebookApp app = new FacebookApp(); 
     Authorizer authorizer = new Authorizer(app); 
     if (!authorizer.IsAuthorized()) 
     { 
      Response.Redirect("~/Account/Login.aspx?returnUrl=" + HttpUtility.UrlEncode(Request.Url.PathAndQuery)); 
     } 
    } 
} 

Es gibt mehr Proben und Anweisungen auf unserer Codeplex wiki.

+0

Soweit ich weiß, wenn Sie auf 'Request.QueryString []' zugreifen, ruft es 'UrlDecode' automatisch auf. – rtpHarry

+0

fyi: Dieser Thread stimmt überein, dass Sie nicht manuell 'UrlDecode' Elemente aus QueryString []' abgerufen werden müssen: http://www.velocityreviews.com/forums/t108005-request-querystring-and-server-urldecode.html – rtpHarry

+0

Vielen Dank Nathan. Ich bin diesen Schritten gefolgt und die Arbeit ist getan. – Suren

0

Befolgen Sie diese einfachen Schritte:

  • die offizielle sdk Verwendung: github.com/facebook/csharp-sdk.
  • Implementieren Sie Ihren eigenen Authentifizierungsprozess.
  • facebookk api-Dokumentation auf Webanwendungen bei der Authentifizierung für ein besseres Verständnis des Authentifizierungsprozesses lesen: developers.facebook.com/docs/authentication/#authenticating-users-in-a-web-application
  • Ich habe eine benutzerdefinierte Facebook classs gemacht um diesen Authentifizierungsprozess so weit wie möglich einzukapseln. Ich habe es in meinem Blog auf facebook api authentication using c# geteilt. Sie können es auch als Referenz verwenden.
  • Nach Erhalt der Zugriffstoken sind alle geradlinig. Legen Sie einfach das Zugriffstoken fest und rufen Sie die Methode "get" für die Bereitstellung von Daten auf.
  • Wenn Sie immer noch Probleme haben, lassen Sie uns bitte Details wissen.
+0

CodePlex Wie diese Antwort hilfreich? Du hättest gerade sagen können, 'lies die Anweisungen'. –

Verwandte Themen