/// <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 ?? "/")); }
/// <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")); }
/// <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")); }
/// <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; }
/// <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)); }