protected void Page_Load(object sender, EventArgs e) { // Login Scenario FaceBookAppKey = ConfigurationManager.AppSettings["facebookAppKey"]; int userId = Tools.GetUserIdFromCookie(Context); User user = null; if (userId > 0) { // user already logged in, get his details by cookie // Get User By Id PostAroundServiceClient client = new PostAroundServiceClient(); user = client.GetCurrentUser(userId); client.Close(); } else { // user isnt logged in string facebookReturnedServerCode = Request.QueryString["code"]; string accessToken = null; // in case of returned from facebook login // continue the flow to get the user details if (!string.IsNullOrWhiteSpace(facebookReturnedServerCode)) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); string url = Request.RawUrl; int index = url.IndexOf("code="); if (index > 0) { url = url.Substring(0, index - 1); } /* string page = Path.GetFileNameWithoutExtension(HttpContext.Current.Request.Url.AbsoluteUri).ToLower(); if (page == "post") { sb.Append(siteUrl); string id = Request.QueryString["id"]; string title = Request.QueryString["title"]; if (!string.IsNullOrWhiteSpace(id) && !string.IsNullOrWhiteSpace(id)) { sb.Append("post/" + id); sb.Append("/" + title); } } else { Uri uri = new Uri(Request.Url.AbsoluteUri); string address = Tools.GetQueryStringByKey(uri, "address"); string url = siteUrl; if (address != null && address != "") { url = Tools.GetFriendlyUrl(siteUrl, address, true); } sb.Append(url); } */ //string page = Path.GetFileNameWithoutExtension(Request.Url.AbsolutePath); //page = page.ToLower(); //string encodedState = Request.QueryString["state"]; //if (!String.IsNullOrWhiteSpace(encodedState)) //{ // string decodedState = Tools.DecodeFrom64(encodedState); // FacebookLoginState fls = ParseStateJSON(decodedState); // url = url + page + "/" + fls.id; //} //else //{ // if (page != "default") // { // url += page + ".aspx"; // } //} SaveEncryptedCodeInCookie(facebookReturnedServerCode); Response.Redirect(domain + url); return; } else { HttpCookie cookie = Request.Cookies["FacebookServerCode"]; if (cookie != null) { if (!string.IsNullOrEmpty(cookie["code"])) { string encCode = cookie["code"]; encCode = encCode.Replace('$', '+'); facebookReturnedServerCode = Tools.Decrypt(encCode, true); } if (!string.IsNullOrWhiteSpace(facebookReturnedServerCode)) { accessToken = GetFacebookAccessToken(facebookReturnedServerCode); // pass the access token to function to get the UserDetails if (!string.IsNullOrWhiteSpace(accessToken)) { user = GetUserDetailsFromToken(accessToken); //save the user in db userId = SaveUserInDB(user); //no need this. i added in sql //SetUserEmailPemission(userId); } } CleanCookie("FacebookServerCode"); } } } if (!IsPostBack) { if (user != null && userId > 0) { //save cookie with userId string encUserId = Tools.SetUserIdInCookie(userId, Context); //Show UserName and Picture on page DisplayDetailsOnPage(user); //Show User Div ShowUserDiv(); //Return LoggedInResponse SetClientResponse(user, encUserId); //Set AccessToken } } }