public HttpsUrlThen() { _canvasUrlBuilder = new CanvasUrlBuilder( CanvasUrlBuilderHelper.GetFakeFacebookApplication(false), CanvasUrlBuilderHelper.GetFakeHttpRequest( new Uri("https://localhost:16151/CSASPNETFacebookApp/default.aspx"), null)); }
public AndHttpUrlAndReferUrlAsNonAppBetaFacebookThen() { _canvasUrlBuilder = new CanvasUrlBuilder( CanvasUrlBuilderHelper.GetFakeFacebookApplication(false), CanvasUrlBuilderHelper.GetFakeHttpRequest( new Uri("http://localhost:16151/CSASPNETFacebookApp/default.aspx"), new Uri("http://apps.facebook.com/app/default.aspx"))); }
public GivenHttp_Beta_NoDefaultCancelUrlPathThen() { _canvasUrlBuilder = new CanvasUrlBuilder( new DefaultFacebookApplication { CanvasUrl = "http://localhost:16151/CSASPNETFacebookApp/", CanvasPage = "http://apps.facebook.com/csharpsamplestwo/" }, GetHttpRequest()); }
protected void Page_Load(object sender, EventArgs e) { CanvasUrlBuilder = new CanvasUrlBuilder(FacebookApplication.Current, new HttpRequestWrapper(Request)); var client = new FacebookWebClient(); PicUrlWebClient = ((dynamic)client.Get("/4", new Dictionary<string, object> { { "fields", "picture" } })).picture; var app = new FacebookApp(); PicUrlApp = ((dynamic)app.Get("/4", new Dictionary<string, object> { { "fields", "picture" } })).picture; }
internal static CanvasUrlBuilder GetCanvasUrlBuilder(HttpContextWrapper httpContext) { var items = httpContext.Items; var httpRequest = httpContext.Request; CanvasUrlBuilder canvasUrlBuilder; if (items[HttpContextKey] == null) { canvasUrlBuilder = new CanvasUrlBuilder(FacebookApplication.Current, httpRequest); items[HttpContextKey] = canvasUrlBuilder; } else { canvasUrlBuilder = (CanvasUrlBuilder)items[HttpContextKey]; } return(canvasUrlBuilder); }
/// <summary> /// Gets the canvas login url. /// </summary> /// <param name="parameters"> /// The parameters. /// </param> /// <returns> /// Returns the login url. /// </returns> public Uri GetLoginUrl(IDictionary <string, object> parameters) { var defaultParameters = new Dictionary <string, object>(); if (!string.IsNullOrEmpty(LoginDisplayMode)) { defaultParameters["display"] = LoginDisplayMode; } if (Permissions != null) { defaultParameters["scope"] = string.Join(",", Permissions); } var canvasUrlBuilder = new CanvasUrlBuilder(FacebookWebRequest.Settings, FacebookWebRequest.HttpContext.Request); return(canvasUrlBuilder.GetLoginUrl(ReturnUrlPath, CancelUrlPath, State, FacebookUtils.Merge(defaultParameters, parameters))); }
/// <summary> /// Gets the canvas login url. /// </summary> /// <param name="parameters"> /// The parameters. /// </param> /// <returns> /// Returns the login url. /// </returns> public Uri GetLoginUrl(IDictionary<string, object> parameters) { Contract.Ensures(Contract.Result<Uri>() != null); var defaultParameters = new Dictionary<string, object>(); if (!string.IsNullOrEmpty(LoginDisplayMode)) { defaultParameters["display"] = LoginDisplayMode; } if (Permissions != null) { defaultParameters["scope"] = String.Join(",", Permissions); } var canvasUrlBuilder = new CanvasUrlBuilder(FacebookWebRequest.Settings, FacebookWebRequest.HttpContext.Request); return canvasUrlBuilder.GetLoginUrl(ReturnUrlPath, CancelUrlPath, State, FacebookUtils.Merge(defaultParameters, parameters)); }
internal static CanvasUrlBuilder GetCanvasUrlBuilder(HttpContextWrapper httpContext) { Contract.Ensures(Contract.Result<CanvasUrlBuilder>() != null); var items = httpContext.Items; var httpRequest = httpContext.Request; CanvasUrlBuilder canvasUrlBuilder; if (items[HttpContextKey] == null) { canvasUrlBuilder = new CanvasUrlBuilder(FacebookApplication.Current, httpRequest); items[HttpContextKey] = canvasUrlBuilder; } else { canvasUrlBuilder = (CanvasUrlBuilder)items[HttpContextKey]; } return canvasUrlBuilder; }
protected internal override System.Uri GetLoginUrl(IFacebookApplication settings, HttpContextBase httpContext, IDictionary<string, object> parameters) { var authorizer = new CanvasAuthorizer(settings, httpContext) { ReturnUrlPath = ReturnUrlPath, CancelUrlPath = CancelUrlPath, LoginDisplayMode = LoginDisplayMode }; if (!String.IsNullOrEmpty(Permissions)) { authorizer.Permissions = Permissions.Replace(" ", String.Empty).Split(','); } if (string.IsNullOrEmpty(CancelUrlPath)) { // set it to this same url instead of going to facebook.com var canvasUrlBuilder = new CanvasUrlBuilder(settings, httpContext.Request); var currentPathAndQuery = canvasUrlBuilder.CurrentCanvasPathAndQuery; if (currentPathAndQuery.Contains("?")) { var parts = currentPathAndQuery.Split('?'); if (parts.Length == 2 && !string.IsNullOrEmpty(parts[1])) { var queryStrings = FacebookUtils.ParseUrlQueryString(parts[1]); // remove oauth 2 error querystrings. // error_reason=user_denied&error_denied=access_denied&error_description=The+user+denied+your+request. if (queryStrings.ContainsKey("error_reason")) { queryStrings.Remove("error_reason"); } if (queryStrings.ContainsKey("error_denied")) { queryStrings.Remove("error_denied"); } if (queryStrings.ContainsKey("error_description")) { queryStrings.Remove("error_description"); } currentPathAndQuery = parts[0] + "?" + FacebookUtils.ToJsonQueryString(queryStrings); } } authorizer.CancelUrlPath = currentPathAndQuery; } return authorizer.GetLoginUrl(null); }
/// <summary> /// Handle unauthorized requests. /// </summary> public override void HandleUnauthorizedRequest() { FacebookWebRequest.HttpContext.Response.ContentType = "text/html"; FacebookWebRequest.HttpContext.Response.Write(CanvasUrlBuilder.GetCanvasRedirectHtml(GetLoginUrl(null))); }
private string GeneratePageLink(string linkText, int pageNumber) { var routeDataValues = viewContext.RequestContext.RouteData.Values; RouteValueDictionary pageLinkValueDictionary; // Avoid canonical errors when page count is equal to 1. if (pageNumber == 1) { pageLinkValueDictionary = new RouteValueDictionary(this.linkWithoutPageValuesDictionary); if (routeDataValues.ContainsKey("page")) { routeDataValues.Remove("page"); } } else { pageLinkValueDictionary = new RouteValueDictionary(this.linkWithoutPageValuesDictionary) { { "page", pageNumber } }; } // To be sure we get the right route, ensure the controller and action are specified. if (!pageLinkValueDictionary.ContainsKey("controller") && routeDataValues.ContainsKey("controller")) { pageLinkValueDictionary.Add("controller", routeDataValues["controller"]); } if (!pageLinkValueDictionary.ContainsKey("action") && routeDataValues.ContainsKey("action")) { pageLinkValueDictionary.Add("action", routeDataValues["action"]); } // 'Render' virtual path. var virtualPathForArea = RouteTable.Routes.GetVirtualPathForArea(viewContext.RequestContext, pageLinkValueDictionary); if (virtualPathForArea == null) return null; CanvasUrlBuilder urlBuilder = new CanvasUrlBuilder(); var fullUrl = urlBuilder.BuildCanvasPageUrl(virtualPathForArea.VirtualPath).ToString(); var stringBuilder = new StringBuilder("<a target='_top'"); stringBuilder.AppendFormat(" href=\"{0}\">{1}</a>", fullUrl, linkText); var url = stringBuilder.ToString(); return url; }