public ActionResult RegisterViaFacebook(string signed_request) { var signedRequest = FacebookSignedRequest.Parse(AppSettingConfig.Current.FacebookApplicationSecret, signed_request); string name = ((dynamic)signedRequest.Data).registration.name; string nickname = ((dynamic)signedRequest.Data).registration.nickname; string email = ((dynamic)signedRequest.Data).registration.email; string password = ((dynamic)signedRequest.Data).registration.password ?? Guid.NewGuid().ToString(); var model = new RegisterModel() { Email = email, Password = password, UserName = nickname }; model.ConfirmPassword = model.Password; var validationContext = new ValidationContext(model, null, null); var validationResults = new List <ValidationResult>(); if (!Validator.TryValidateObject(model, validationContext, validationResults, true)) { foreach (var error in validationResults) { ModelState.AddModelError("", error.ErrorMessage); } } return(Register(model)); }
public FacebookContextSettings() { FacebookWebContext facebookContext = FacebookWebContext.Current; IFacebookApplication settings; FacebookSignedRequest signedRequest; if (facebookContext.SignedRequest == null) { // ajax requests won't have a signed request, so we need to build it from the current http request // see http://facebooksdk.codeplex.com/discussions/251878 settings = FacebookApplication.Current; signedRequest = FacebookSignedRequest.Parse(settings, SignedRequest); } else { settings = facebookContext.Settings; signedRequest = facebookContext.SignedRequest; } CanvasPage = settings.CanvasPage; AccessToken = signedRequest.AccessToken; AppId = settings.AppId; UserId = signedRequest.UserId; }
public FacebookContextSettings() { FacebookWebContext facebookContext = FacebookWebContext.Current; IFacebookApplication settings; FacebookSignedRequest signedRequest; if (facebookContext.SignedRequest == null) { // ajax requests won't have a signed request, so we need to build it from the current http request // see http://facebooksdk.codeplex.com/discussions/251878 settings = FacebookApplication.Current; try { signedRequest = FacebookSignedRequest.Parse(settings, SignedRequest); } catch (Exception exception) { // Facebook posts to the iframe, but only IE supports this so the first request will always fail for non IE browsers if (HttpContext.Current.Request.Browser.Browser.Contains("IE")) { throw; } // it doesn't break anything so we'll throw a custom exception so that we can filter it out later InvalidSignedRequestException signedRequestException = new InvalidSignedRequestException("Invalid SignedRequest - Non - IE (" + SignedRequest + ")", exception); throw signedRequestException; } } else { settings = facebookContext.Settings; signedRequest = facebookContext.SignedRequest; } CanvasPage = settings.CanvasPage; AccessToken = signedRequest.AccessToken; AppId = settings.AppId; UserId = signedRequest.UserId; }
private FacebookSignedRequest ParseSignedRequest(IFacebookApplication settings) { HttpContext context = HttpContext.Current; if (context != null) { HttpContextWrapper contextWrapper = new HttpContextWrapper(context); if (contextWrapper.Request.IsAjaxRequest()) { // ajax requests won't have a signed request, so we need to build it from the current http request // see http://facebooksdk.codeplex.com/discussions/251878 try { return(FacebookSignedRequest.Parse(settings, SignedRequest)); } catch (Exception exception) { // Facebook posts to the iframe, but only IE supports this so the first request will always fail for non IE browsers if (context.Request.Browser.Browser.Contains("IE")) { throw; } // it doesn't break anything so we'll throw a custom exception so that we can filter it out later InvalidSignedRequestException signedRequestException = new InvalidSignedRequestException( "Invalid SignedRequest - Non - IE (" + SignedRequest + ")", exception); throw signedRequestException; } } } return(null); }