public ActionResult FacebookCallback(string code)
        {
            var fb = new FacebookClient();
            dynamic result = fb.Post("oauth/access_token", new
            {
                client_id = System.Configuration.ConfigurationManager.AppSettings["FacebookAppID"],
                client_secret = System.Configuration.ConfigurationManager.AppSettings["FacebookAppSecret"],
                redirect_uri = RedirectUri.AbsoluteUri,
                code = code
            });

            var accessToken = result.access_token;
            fb.AccessToken = accessToken;
            dynamic me = fb.Get("me?fields=email");

            if (!IsUserRegistered(me.mail))
            {

                using (TicketBookingEntities db = new TicketBookingEntities())
                {
                    string password = DateTime.Now.ToString();
                    RegisteredUser user = new Models.RegisteredUser() { Username = me.email, Password = password, Email = me.email };
                    db.RegisteredUsers.Add(user);
                    db.Memberships.Add(new Models.Membership() { UserID = user.ID, Role = db.Roles.Single(x => x.ID == 1).Name });
                    db.SaveChanges();
                }
            }

            FormsAuthentication.SetAuthCookie(me.email, false);
            Session["login"] = true;
            Session["username"] = me.email;
            return RedirectToAction("Index", "Home");
        }
Beispiel #2
0
 public ActionResult Login(Models.RegisteredUser user)
 {
     if (ValidateUser(user.Username, user.Password))
     {
         return(RedirectToAction("Index", "LoggedIn"));
     }
     else
     {
         ModelState.AddModelError("", "Login data is incorrect!");
         return(View());
     }
 }