Example #1
0
        /// <summary>
        /// Handles the post-authentication step from Facebook
        /// </summary>
        /// <param name="returnUrl">Return URL, if any</param>
        /// <returns>Redirect to home/return URL</returns>
        public ActionResult FacebookAuthenticated(String returnUrl)
        {
            Contract.Requires <ArgumentNullException>(Request.Url != null);

            var redirectUri = new UriBuilder(Request.Url)
            {
                Path = Url.Action("FacebookAuthenticated", "Auth")
            };
            var client      = new FacebookClient();
            var oauthResult = client.ParseOAuthCallbackUrl(Request.Url);

            // Exchange the code for an access token
            dynamic result = client.Get("/oauth/access_token",
                                        new
            {
                client_id     = ConfigurationManager.AppSettings["fb_key"],
                client_secret = ConfigurationManager.AppSettings["fb_secret"],
                redirect_uri  = redirectUri.Uri.AbsoluteUri,
                code          = oauthResult.Code,
            });

            var token = result.access_token;

            FbHelpers.AccessTokenSave(Response, token);

            dynamic user = client.Get("/me", new { fields = "first_name,last_name,email", access_token = token });

            //FormsAuthentication.SetAuthCookie(user.email, false);
            var userName = String.Format("{0} {1}", user.first_name, user.last_name);
            var cookie   = FormsAuthentication.GetAuthCookie(userName, true);

            Response.AppendCookie(cookie);

            return(Redirect(returnUrl ?? "/"));
        }
Example #2
0
        /// <summary>
        /// Triggers the authentication process towards Facebook
        /// </summary>
        public void Login()
        {
            var loginUrl = FbHelpers.GetLoginUrl();

            ShowBrowser = true;
            _view.Browser.Navigate(loginUrl);
        }
        public ActionResult Post(String status)
        {
            var token = FbHelpers.AccessTokenRead(Request);

            if (String.IsNullOrEmpty(token))
            {
                throw new InvalidOperationException("Can't find FB access token");
            }

            FbHelpers.Post(token, status);
            return(View("index"));
        }
Example #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="oauthResult"></param>
        public void LoginSucceeded(FacebookOAuthResult oauthResult)
        {
            ShowBrowser = false;
            var token = FbHelpers.GetAccessToken(oauthResult);

            Token = token;
            dynamic user = FbHelpers.GetUser(token);

            UserName = String.Format("{0} {1}", user.first_name, user.last_name);
            // UserPicture = user.picture;
            IsLogged = true;
        }
        public ActionResult PostPhoto(String status)
        {
            var token = FbHelpers.AccessTokenRead(Request);

            if (String.IsNullOrEmpty(token))
            {
                throw new InvalidOperationException("Can't find FB access token");
            }

            //var path = Server.MapPath("~/Content/Images/onserve.jpg");
            //FbHelpers.PostPicture(token, status, path);
            FbHelpers.Post(token, status);
            return(View("index"));
        }
Example #6
0
        /// <summary>
        ///
        /// </summary>
        public void PostUpdate()
        {
            if (String.IsNullOrEmpty(PhotoPath))
            {
                FbHelpers.Post(Token, Status);
            }
            else
            {
                FbHelpers.PostWithPhoto(Token, Status, PhotoPath);
            }

            Status    = String.Empty;
            PhotoPath = String.Empty;
        }
Example #7
0
 /// <summary>
 /// Logs off and redirects to the specified view.
 /// </summary>
 /// <param name="defaultAction">Action to redirect</param>
 /// <param name="defaultController">Controller to redirect</param>
 /// <returns>Redirect</returns>
 public ActionResult LogOff(String defaultAction = "Index", String defaultController = "Home")
 {
     FormsAuthentication.SignOut();
     FbHelpers.AccessTokenDelete(Request);
     return(RedirectToAction(defaultAction, defaultController));
 }