2011-01-16 32 views
5

Tôi đang sử dụng Facebook Connect trong ứng dụng của mình. Mọi thứ hoạt động khá tốt. Tuy nhiên trên trang của tôi trong constructor, tôi muốn biết người dùng đã đăng nhập vào Facebook tôi muốn hiển thị một trang khác chứ không phải là trang đăng nhập. Tôi có thể làm cái này như thế nào? Tôi đang sử dụng Bộ công cụ phát triển Facebook 3.1 và Silverlight 4.0. Tóm lại, tôi muốn biết liệu người dùng có được kết nối với facebook hay không.Làm cách nào để biết người dùng đã đăng nhập vào Facebook?

Cảm ơn trước :)

Trả lời

4

Lưu ý - đây là trong MVC - nếu bạn đang sử dụng Silverlight, bạn có thể cần sửa đổi một số mã.

Tôi đã sử dụng các mục sau. Trong "trang đích" của tôi, tôi có như sau:

if (Request.Cookies["AuthenticatedViaFacebook"] != null) 
{ 
    string val = Server.HtmlEncode(Request.Cookies["AuthenticatedViaFacebook"].Value); 
    if (val == "true") 
    { 
     return RedirectToAction("Login", "Account"); 
    } 
} 

trong trang tài khoản/Đăng nhập tôi làm một cách nhanh chóng tái trực tiếp đến facebook:

var oAuthClient = new FacebookOAuthClient(FacebookApplication.Current); 
oAuthClient.RedirectUri = new Uri(ConfigurationManager.AppSettings["RedirectUrl"]); 
var loginUri = oAuthClient.GetLoginUrl(new Dictionary<string, object> { { "state", returnUrl } }); 
return Redirect(loginUri.AbsoluteUri + "&scope=user_birthday"); 

Nếu nó trở lại succesfull - Tôi cho phép người dùng và gửi chúng vào hệ thống.

Tôi lưu trữ id facebook trong cơ sở dữ liệu của mình, vì vậy tôi biết người dùng là gì.

Tôi không biết cách làm nhanh hơn hoặc tốt hơn - công việc này khá nhanh. Bạn thấy url trang facebook trong một giây hoặc lâu hơn và sau đó bạn đang ở trong hệ thống của mình

Các vấn đề liên quan