Beispiel #1
0
        protected void getApiFacebook()
        {
            FaceBookConnect.API_Key    = ConfigurationManager.AppSettings["fb_app_id"];
            FaceBookConnect.API_Secret = ConfigurationManager.AppSettings["fb_app_secret"];
            FaceBookUser faceBookUser = new FaceBookUser();

            if (!string.IsNullOrEmpty(Request.QueryString["code"]))
            {
                try
                {
                    /*string data = FaceBookConnect.Fetch("code", "me?fields=id,name,email");
                     * faceBookUser = new JavaScriptSerializer().Deserialize<FaceBookUser>(data);
                     * Response.Cookies.Add(ck.addcokie(faceBookUser.Name));*/
                    Server.Transfer("default.aspx");
                    Request.QueryString.Remove("code");
                }
                catch (Exception ex)
                {
                    Response.Write(ex);
                }
            }
            if (Request.QueryString["error"] == "access_denied")
            {
                ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "alert('Access denied.')", true);
            }
        }
Beispiel #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(Request.QueryString["access_token"]))
        {
            return;                                                            //ERROR! No token returned from Facebook!!
        }
        //let's send an http-request to facebook using the token
        string json = GetFacebookUserJSON(Request.QueryString["access_token"]);

        //and Deserialize the JSON response
        JavaScriptSerializer js    = new JavaScriptSerializer();
        FaceBookUser         oUser = js.Deserialize <FaceBookUser>(json);

        if (oUser != null)
        {
            Response.Write("Welcome, " + oUser.name);
            Response.Write("<br />id, " + oUser.id);
            Response.Write("<br />email, " + oUser.email);
            Response.Write("<br />first_name, " + oUser.first_name);
            Response.Write("<br />last_name, " + oUser.last_name);
            Response.Write("<br />gender, " + oUser.gender);
            Response.Write("<br />link, " + oUser.link);
            Response.Write("<br />updated_time, " + oUser.updated_time);
            Response.Write("<br />birthday, " + oUser.birthday);
            Response.Write("<br />locale, " + oUser.locale);
            Response.Write("<br />picture, " + oUser.picture);
            if (oUser.location != null)
            {
                Response.Write("<br />locationid, " + oUser.location.id);
                Response.Write("<br />location_name, " + oUser.location.name);
            }
        }
    }
Beispiel #3
0
        public ActionResult Index()
        {
            FaceBookUser faceBookUser = new FaceBookUser();

            if (Request.QueryString["error"] == "access_denied")
            {
                ViewBag.Message = "User has denied access.";
            }
            else
            {
                string code = Request.QueryString["code"];
                if (!string.IsNullOrEmpty(code))
                {
                    try
                    {
                        string data = FaceBookConnect.Fetch(code, "me?fields=id,name,email");
                        faceBookUser = new JavaScriptSerializer().Deserialize <FaceBookUser>(data);
                        //faceBookUser.PictureUrl = string.Format("https://graph.facebook.com/{0}/picture", faceBookUser.Id);

                        Usuario entidad = new Usuario
                        {
                            Nombres           = faceBookUser.Name.Split(' ')[0],
                            CorreoElectronico = faceBookUser.Email,
                            UsuarioIDExterno  = faceBookUser.Id,
                            Estado            = "ACT",
                            Origen            = "FB",
                            DeviceToken       = ""
                        };

                        var Resultado = _UsuarioService.Insert_RedesSociales(entidad);
                        if (Resultado.UsuarioId != 0)
                        {
                            Usuario objUsuario = _UsuarioService.UsuarioPorID(Resultado.UsuarioId);

                            VMDatosUsuarioExterno.SetValueLogin(faceBookUser.Name.Split(' ')[0], faceBookUser.Email, "Externo", null, Resultado.UsuarioId.ToString(), "ACT", objUsuario.DNI);
                            FormsAuthentication.SetAuthCookie(VMDatosUsuarioExterno.GetUserAlias(), false);
                        }
                    }
                    catch (Exception ex)
                    {
                        Log _log = new Log
                        {
                            IDCategoria     = 1,
                            UsuarioCreacion = "",
                            Mensaje         = "Origen:WEB - Método:Index(Controller LoginFacebookController) - Error:" + ex.GetBaseException().ToString()
                        };
                        _LogService.Insert(_log);
                    }
                }
            }
            return(Redirect("~/TrabajaConNosotros"));
        }
Beispiel #4
0
 private void buttonPost_Click(object sender, EventArgs e)
 {
     try
     {
         Status postedStatus = FaceBookUser.PostStatus(textBoxPost.Text);
         textBoxPost.Text = string.Empty;
         MessageBox.Show("Status Posted!");
     }
     catch
     {
         MessageBox.Show("not Posted!");
     }
 }
Beispiel #5
0
        public HttpResponseMessage FacebookLogin(FaceBookUser model)
        {
            string deviceToken = Request.Headers.GetValues("DeviceToken").FirstOrDefault();
            string deviceType = Request.Headers.GetValues("DeviceType").FirstOrDefault();

            ActionOutput<UserDetails> Result = _homeManager.FacebookLogin(model, deviceToken, Convert.ToInt32(deviceType));
            // Subscribe
            if (model.Subscribe && Result.Status == ActionStatus.Successfull)
            {
                //_userManager.Subscribe(model.Email, (int)SubscriptionStatus.Subscribe, Result.Object.UserID);
            }
            return Request.CreateResponse<ApiActionOutput>(HttpStatusCode.OK, new ApiActionOutput
            {
                Status = Result.Status,
                Message = Result.Message,
                JsonData = Result.Object
            });
        }
Beispiel #6
0
        private void FaceBookDevelopApiDetail()
        {
            FaceBookConnect.API_Key    = "291291764879597";
            FaceBookConnect.API_Secret = "a4148ad27427c346d65bcb456f9d00d9";

            FaceBookUser faceBookUser = new FaceBookUser();

            if (Request.QueryString["error"] == "access_denied")
            {
                ViewBag.Message = "User has denied access.";
            }
            else
            {
                string code = Request.QueryString["code"];
                if (!string.IsNullOrEmpty(code))
                {
                    string data = FaceBookConnect.Fetch(code, "me?fields=id,name,email");
                    faceBookUser            = new JavaScriptSerializer().Deserialize <FaceBookUser>(data);
                    faceBookUser.PictureUrl = string.Format("https://graph.facebook.com/{0}/picture", faceBookUser.Id);
                }
            }
        }
        public ActionResult LoginWithFaceBook()
        {
            FaceBookConnect.API_Key    = "317988162529177";
            FaceBookConnect.API_Secret = "6e2dab9677f176a9fd4006018b4d1e35";

            FaceBookUser faceBookUser = new FaceBookUser();

            if (Request.QueryString["error"] == "access_denied")
            {
                ViewBag.Message = "User has denied access.";
            }
            else
            {
                string code = Request.QueryString["code"];
                if (!string.IsNullOrEmpty(code))
                {
                    string data = FaceBookConnect.Fetch(code, "me?fields=id,name,email");
                    faceBookUser            = new JavaScriptSerializer().Deserialize <FaceBookUser>(data);
                    faceBookUser.PictureUrl = string.Format("https://graph.facebook.com/{0}/picture", faceBookUser.Id);
                }
                else
                {
                    FaceBookConnect.Authorize("user_photos,email", string.Format("{0}://{1}/{2}", Request.Url.Scheme, Request.Url.Authority, "Home/Index/"));
                    string code1 = Request.QueryString["code"];
                    if (!string.IsNullOrEmpty(code1))
                    {
                        string data = FaceBookConnect.Fetch(code, "me?fields=id,name,email");
                        faceBookUser            = new JavaScriptSerializer().Deserialize <FaceBookUser>(data);
                        faceBookUser.PictureUrl = string.Format("https://graph.facebook.com/{0}/picture", faceBookUser.Id);
                    }
                    return(new EmptyResult());
                }
            }

            return(View(faceBookUser));
        }
Beispiel #8
0
        private SiteUser CreateUser(FaceBookUser oUser)
        {
            if (string.IsNullOrEmpty(oUser.Email) || !Email.IsValidEmailAddressSyntax(oUser.Email))
            {
                oUser.Email = oUser.Id + "@facebook.com";
            }

            if (SiteUser.EmailExistsInDB(siteSettings.SiteId, oUser.Email))
            {
                var user = new SiteUser(siteSettings, oUser.Email);
                if (user != null && user.UserId > 0)
                {
                    if (string.IsNullOrEmpty(user.OpenIdUri))
                    {
                        user.OpenIdUri = oUser.Id;
                        //if (oUser.Email != user.Email)
                        //    user.ApprovedForLogin = true;
                        user.Save();
                    }

                    return(user);
                }
            }

            SiteUser newUser = new SiteUser(siteSettings);

            newUser.Email     = oUser.Email;
            newUser.LoginName = SiteUtils.SuggestLoginNameFromEmail(siteSettings.SiteId, newUser.Email);
            newUser.Name      = newUser.LoginName;
            gbMembershipProvider gbMembership = (gbMembershipProvider)Membership.Provider;

            newUser.Password = gbMembership.EncodePassword(siteSettings, newUser, SiteUser.CreateRandomPassword(7, WebConfigSettings.PasswordGeneratorChars));

            newUser.ApprovedForLogin = false;
            newUser.OpenIdUri        = oUser.Id; //"http://www.facebook.com/profile.php?id=" + oUser.Id;
            if (!string.IsNullOrEmpty(oUser.First_Name))
            {
                newUser.FirstName = oUser.First_Name;
            }
            if (!string.IsNullOrEmpty(oUser.Last_Name))
            {
                newUser.FirstName = (oUser.Last_Name + " " + newUser.FirstName).Trim();
                //newUser.LastName = oUser.Last_Name;
            }

            if (string.IsNullOrEmpty(newUser.FirstName) && !string.IsNullOrEmpty(oUser.Name))
            {
                newUser.FirstName = oUser.Name;
            }

            //if (!string.IsNullOrEmpty(oUser.Bio))
            //    newUser.AuthorBio = oUser.Bio;
            if (!string.IsNullOrEmpty(oUser.Gender))
            {
                switch (oUser.Gender.ToLower())
                {
                case "male":
                case "nam":
                    newUser.Gender = "M";
                    break;

                case "female":
                case "nữ":
                    newUser.Gender = "F";
                    break;
                }

                //newUser.Gender = oUser.Gender.ToUpper();
            }
            //if (!string.IsNullOrEmpty(oUser.Link))
            //    newUser.WebSiteUrl = oUser.Link;
            //newUser.AvatarUrl = string.Format("https://graph.facebook.com/{0}/picture?width=160&height=160", oUser.Id);

            newUser.Save();

            //// track clientNo ip address
            //UserLocation userLocation = new UserLocation(newUser.UserGuid, SiteUtils.GetIP4Address());
            //userLocation.SiteGuid = siteSettings.SiteGuid;
            //userLocation.Hostname = Page.Request.UserHostName;
            //userLocation.Save();

            UserRegisteredEventArgs u = new UserRegisteredEventArgs(newUser);

            OnUserRegistered(u);

            CacheHelper.ClearMembershipStatisticsCache();

            return(newUser);
        }
Beispiel #9
0
        ActionOutput<UserDetails> IHomeManager.FacebookLogin(FaceBookUser Login, string DeviceToken, int DeviceType)
        {
            if (string.IsNullOrEmpty(Login.Email))
            {
                Login.Email = Login.FacebookUserID + "@yourdomain.com";
            }
            int roleid = (int)UserRoles.User;
            int[] registervia = { (int)RegisterVia.AndroidFacebook, (int)RegisterVia.IPhoneFacebook, (int)RegisterVia.WebsiteFacebook };
            // Check for duplicate Email
            var old = Context.Users.Where(m => m.Email == Login.Email).FirstOrDefault();
            if (old != null && old.FacbookUserID != Login.FacebookUserID && !registervia.Contains(old.RegisterVia))
            {
                return new ActionOutput<UserDetails>
                {
                    Message = "User with same email is already exists with normal registration.",
                    Status = ActionStatus.Error,
                    Object = null
                };
            }
            UserDetails user = Context.Users.Where(m => m.FacbookUserID == Login.FacebookUserID && m.RoleID == roleid && registervia.Contains(m.RegisterVia))
                                            .Select(m => new UserDetails
                                            {
                                                UserID = m.UserID,
                                                RoleID = m.RoleID,
                                                RegisterVia = m.RegisterVia,
                                                RegistrationIP = m.RegistrationIP,
                                                Email = m.Email,
                                                FullName = m.Name,
                                                DisplayName = m.DisplayName,
                                                ProfilePicture = m.ProfilePicture,
                                                CountryID = m.CountryID,
                                                StateID = m.StateID,
                                                OtherState = m.OtherState,
                                                City = m.CityID,
                                                OtherCity = m.OtherCity,
                                                ZipCode = m.ZipCode,
                                                FailedLoginAttempts = m.FailedAttempts,
                                                CreatedOn = m.DateCreated,
                                                IsLoggedIn = true
                                                //SubscriptionStatus = m.EmailSubscriptions.Any() ? m.EmailSubscriptions.FirstOrDefault().Status : Unsubscribe
                                            })
                                            .FirstOrDefault();
            if (user == null)
            {
                // Register the user if not found in database
                User userNew = new User
                {
                    RoleID = (int)UserRoles.User,
                    FacbookUserID = Login.FacebookUserID,
                    RegisterVia = Login.RegisterVia,
                    RegistrationIP = Login.RegistrationIP,
                    Email = Login.Email,
                    Password = null,
                    ResetPassword = false,
                    PasswordResetCode = null,
                    Name = Login.FullName,
                    DisplayName = Login.DisplayName,
                    ProfilePicture = Login.PictureUrl,
                    CountryID = Login.CountryID,
                    StateID = null,
                    OtherState = Login.OtherState,
                    CityID = null,
                    OtherCity = Login.OtherCity,
                    ZipCode = null,
                    FailedAttempts = 0,
                    DateCreated = DateTime.UtcNow
                };
                Context.Users.Add(userNew);
                SaveChanges();
                Login.UserID = userNew.UserID;

                user = new UserDetails
                {
                    UserID = Login.UserID,
                    RoleID = (int)UserRoles.User,
                    RegisterVia = Login.RegisterVia,
                    RegistrationIP = Login.RegistrationIP,
                    Email = Login.Email,
                    FullName = Login.FullName,
                    DisplayName = Login.DisplayName,
                    ProfilePicture = Login.PictureUrl,
                    CreatedOn = DateTime.UtcNow,
                    IsLoggedIn = true,
                    OtherCity = Login.OtherCity,
                    OtherState = Login.OtherState,
                    CountryID = Login.CountryID
                    //CountryName = userNew.Country != null ? userNew.Country.CountryName : ""
                };
            }
            //user.ProfilePicture = Config.UserImages + user.UserID + "/" + user.ProfilePicture;
            // Save User into Login Sessions
            Guid Guid = Guid.NewGuid();
            var OldSession = Context.UserLoginSessions.Where(m => m.UserID == user.UserID && !m.SessionExpired).FirstOrDefault();
            if (OldSession == null)
            {
                Context.UserLoginSessions.Add(new UserLoginSession
                {
                    LoggedInTime = DateTime.UtcNow,
                    LoggedOutTime = null,
                    SessionExpired = false,
                    UserID = user.UserID,
                    UserLoginSessionID = Guid,
                    LoggedInDeviceToken = DeviceToken,
                    DeviceType = DeviceType
                });
                user.SessionId = Guid;
                SaveChanges();
            }
            else
            {
                user.SessionId = OldSession.UserLoginSessionID;
                OldSession.LoggedInDeviceToken = DeviceToken;
                OldSession.DeviceType = DeviceType;
                SaveChanges();
            }
            return new ActionOutput<UserDetails>
            {
                Message = "User logged in successfuly.",
                Status = ActionStatus.Successfull,
                Object = user
            };
        }
Beispiel #10
0
        public ActionResult Facebook_Access()
        {
            if (Request.QueryString["error"] == "access_denied")
            {
                return null;
            }
            string code = Request.QueryString["code"];
            if (!string.IsNullOrEmpty(code))
            {
                string data = "";
                try
                {
                    data = FaceBookConnect.Fetch(code, "me");
                }
                catch (WebException wex)
                {
                    var resp = new StreamReader(wex.Response.GetResponseStream()).ReadToEnd();

                    dynamic obj = JsonConvert.DeserializeObject(resp);
                    var messageFromServer = obj.error.message;
                }
                FaceBookUserWeb faceBookUser = new JavaScriptSerializer().Deserialize<FaceBookUserWeb>(data);
                faceBookUser.PictureUrl = string.Format("https://graph.facebook.com/{0}/picture", faceBookUser.Id);

                FaceBookUser fbUserModel = new FaceBookUser
                {
                    CountryID = null,
                    DisplayName = faceBookUser.Name,
                    Email = faceBookUser.Email,
                    FacebookUserID = faceBookUser.Id,
                    FullName = faceBookUser.Name,
                    PictureUrl = faceBookUser.PictureUrl,
                    RegisterVia = (int)RegisterVia.WebsiteFacebook,
                    RegistrationIP = Request.UserHostAddress,
                    Subscribe = false
                };

                ActionOutput<UserDetails> Result = _homeManager.FacebookLogin(fbUserModel, "Website-User-" + faceBookUser.Id, (int)RegisterVia.WebsiteFacebook);
                if (Result.Status == ActionStatus.Successfull && Result.Object != null)
                {
                    CreateCustomAuthorisationCookie(fbUserModel.Email, false, new JavaScriptSerializer().Serialize(Result.Object));
                }
                else
                {
                    return RedirectToAction("Error", "Home", new { id = Result.Message.Replace(" ", "-").Replace(".#_=_", "") });
                }
            }
            return RedirectToAction("Index", "Home");
        }