ResolveCanvasPageUrl() public method

Generates absolute url for a relative url on facebook application canvas (e.g. http://apps.facebook.com/graphdotnet/default.aspx).
is null.
public ResolveCanvasPageUrl ( [ relativeUrl ) : string
relativeUrl [ a relative url to convert to absolute (e.g. ~/default.aspx).
return string
Esempio n. 1
0
        void OnEnter(HttpContext context)
        {
            if (context.Session == null || !context.Request.Url.AbsolutePath.Contains("/Canvas"))
                return;

            // the following browsers has 'Accept cookie from site I visit settings'. we need to make them store cookie.
            HttpBrowserCapabilities br = context.Request.Browser;
            bool forceLogin = br.IsBrowser("opera") || (br.IsBrowser("safari") && !br.IsBrowser("googlechrome"));

            forceLogin = forceLogin && context.Session["after_login"] == null;

            var util = new CanvasAuthContext(this)
            {
                Culture = CultureInfo.CurrentCulture,
                ExProcessor = ex => Debug.Write(ex),
            };

            util.SessionStorage = new CookieSessionStore(context, util);

            if (util.Authenticate(context) && !forceLogin)
            {
                context.User = new GenericPrincipal(new Identity(util), null);
                var step = context.Session["after_login"] as int?;

                if (!step.HasValue || step.Value != 0) return;

                context.Session["after_login"] = 1;
                CanvasAuthContext.RedirectFromIFrame(context, util.ResolveCanvasPageUrl(context.Request.AppRelativeCurrentExecutionFilePath));
            }
            else if (!(context.Handler is IClientAuth))
            {
                context.Session["after_login"] = 0;
                var @params = new Dictionary<string, string> { { "req_perms", "user_birthday" } };
                CanvasAuthContext.RedirectFromIFrame(context, util.GetLoginUrl(context.Request.Url, @params));
                return;
            }
        }