public ActionResult FacebookCallback(string code) { var fb = new FacebookClient(); dynamic result = fb.Post("oauth/access_token", new { client_id = ConfigurationManager.AppSettings["FbAppID"], client_secret = ConfigurationManager.AppSettings["FbAppSecret"], redirect_uri = RedirectUri.AbsoluteUri, code = code }); var accessToken = result.access_token; if (!string.IsNullOrEmpty(accessToken)) { fb.AccessToken = accessToken; dynamic me = fb.Get("me?fields=first_name, middle_name,last_name,id,email"); string email = me.email; //string username = me.email; //string name = me.first_name; try { db.sp_InsUserFb(email); db.SaveChanges(); var user = db.Users.Where(x => x.Email == email).FirstOrDefault(); if (user != null) { Session["userID"] = user.Id; Session["username"] = user.Email; if (user.Avatar == null) { Session["Avatar"] = "#.png"; } BuyerAddressClient buyerAddressClient = new BuyerAddressClient(); var addressList = buyerAddressClient.find(Convert.ToInt32(Session["userID"])); Session["Address_ID"] = addressList.Where(x => x.default_address == 1).Select(x => x.Address_ID).FirstOrDefault(); return(RedirectToAction("Index", "MainPage", new { Area = "Buyer" })); } } catch { Response.Write("<script>alert('Invalid Email or Password')</script>"); return(View("Error")); } } else { Response.Write("<script>alert('Invalid Email or Password')</script>"); return(View("Error")); } Response.Write("<script>alert('Invalid Email or Password')</script>"); return(View("Error")); }