public ActionResult FacebookCallback(string code) { var fb = new FacebookClient(); dynamic result = fb.Post("oauth/access_token", new { client_id = ConfigurationManager.AppSettings["FacebookAppId"], client_secret = ConfigurationManager.AppSettings["FacebookAppSecret"], redirect_uri = RedirectUri.AbsoluteUri, code }); var accessToken = result.access_token; if (!string.IsNullOrEmpty(accessToken)) { fb.AccessToken = accessToken; // Get the user's information, like email, first name, middle name etc dynamic me = fb.Get("me?fields=id,name,gender,picture,email,birthday,locale"); // Kiểm tra xem tk đã có trong csdl chưa qua facebook id var objAccountRsChecked = AccountBCL.CheckFacebookId(me.id); if (objAccountRsChecked != null) { // Đã có trong csdl rồi // Tạo session đăng nhập thành công Session.Add(Comomconstants.USER_SESSION, objAccountRsChecked); // Tải lại trang return(RedirectToAction("Index", "Home")); } // Nếu chưa có tk, insert vào csdl đăng ký. Sau đó tạo session đăng nhập thành công // Đóng gói đối tượng var birthDay = me.birthday; var objAccount = new AccountObject() { Email = me.email, FullName = me.name, ID_Facebook = me.id, Avatar = me.picture.data.url }; if (!string.IsNullOrEmpty(birthDay)) { objAccount.BirthDay = DateTime.ParseExact(birthDay, "MM/dd/yyyy", CultureInfo.InvariantCulture); } // Nếu ko lấy đc mail thì dãn đến trang cho phép nhập mail if (string.IsNullOrEmpty(objAccount.Email)) { ViewBag.ErrorEmail = false; // Tạm thời chưa có lỗi ở email return(View("ConfirmEmail", objAccount)); } // Insert tk xuống csdl objAccount.AccountID = Guid.NewGuid(); // objAccount.RoleId = 100; // tk thường new AccountBCL().Insert(objAccount); // Tạo session Session.Add(Comomconstants.USER_SESSION, objAccount); // Tải lại trang return(RedirectToAction("Index", "Home")); } return(RedirectToAction("Index", "Home")); }