void Page_Load(object sender, EventArgs e)
    {
        var fb = new Facebook();

        string accessToken;

        try {
            accessToken = fb.GetAccessToken(this.User.Name, this.txtPassword.Text);
        } catch (WebException ex) {
            Log(ex);
            this.divError.Text = "Sorry, Facebook is down";
            // continue processing without Facebook
        } catch (ArgumentException ex) {
            // Don't log - we don't care
            this.divError.Text = "Your password is invalid";
            // stop processing, let the user correct password
            return;
        } catch (Exception ex) {
            Log(ex);
            // Unknown error. Stop processing and show friendly message
            throw;
        }
        if (!string.IsNullOrEmpty(accessToken))
        {
            // enable Facebook integration
            this.FillFacebookWallPosts(accessToken);
        }
        else
        {
            // disable Facebook integration
            this.HideFacebook();
        }
    }
Пример #2
0
        public ActionResult Authenticate()
        {
            string Error = Request.QueryString["error"];

            if (!string.IsNullOrEmpty(Error))
            {
                return(View("Fail"));
            }

            string FacebookAccessToken = Facebook.GetAccessToken(Request.QueryString["code"]);

            //check if the user had given us the correct permissions
            if (!Facebook.hasPermission(FacebookAccessToken, "xmpp_login"))
            {
                return(View("NeedPermission"));
            }

            FacebookObject Person = Facebook.getPerson(FacebookAccessToken);

            Db.User User = db.ProcessToken(this.UserHash, 1, Person.id, Person.name, FacebookAccessToken, string.Empty, string.Empty, string.Empty).FirstOrDefault();

            //waardes voor de bronframe setten
            this.UserHash = User.Hash;
            Response.Cookies.Add(new HttpCookie("NetworkConnected", "facebook"));

            return(View());
        }
Пример #3
0
        public JsonResult PostStatus(string msg)
        {
            Session["postStatus"] = msg;


            Facebook facebook = auth.FacebookAuth();

            if (Session["facebookQueryStringValue"] == null)
            {
                string authLink = facebook.GetAuthorizationLink();
                return(Json(authLink));
            }

            if (Session["facebookQueryStringValue"] != null)
            {
                facebook.GetAccessToken(Session["facebookQueryStringValue"].ToString());
                FBUser    currentUser = facebook.GetLoggedInUserInfo();
                IFeedPost FBpost      = new FeedPost();
                if (Session["postStatus"].ToString() != "")
                {
                    FBpost.Message = Session["postStatus"].ToString();
                    facebook.PostToWall(currentUser.id.GetValueOrDefault(), FBpost);
                }
            }
            return(Json("No"));
        }
Пример #4
0
 public ActionResult Success()
 {
     if (Request.QueryString["code"] != null)
     {
         string Code = Request.QueryString["code"];
         Session["facebookQueryStringValue"] = Code;
     }
     if (Session["facebookQueryStringValue"] != null)
     {
         Facebook facebook = auth.FacebookAuth();
         facebook.GetAccessToken(Session["facebookQueryStringValue"].ToString());
         FBUser    currentUser = facebook.GetLoggedInUserInfo();
         IFeedPost FBpost      = new FeedPost();
         if (Session["postStatus"].ToString() != "")
         {
             FBpost.Message = Session["postStatus"].ToString();
             facebook.PostToWall(currentUser.id.GetValueOrDefault(), FBpost);
         }
     }
     return(View());
 }
Пример #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            faces.Visible = _showFaces;

            string fbRedirect = "http://" + Request.Url.Host + "/Login.aspx?step=fb";


            //determine returl url
            string returnFromLoginUrl = "";

            if (Request["fbreturn"] != null)
            {
                returnFromLoginUrl = Request["fbreturn"];
            }
            else if (Request["return"] != null)
            {
                returnFromLoginUrl = Request["return"];
            }
            else
            {
                returnFromLoginUrl = Utils.GetLoginReturnUrl(HttpContext.Current);
            }

            if (returnFromLoginUrl != "")
            {
                fbRedirect = fbRedirect + "&fbreturn=" + Server.UrlEncode(returnFromLoginUrl);
                //tilføj return url, så den huskes også via ture over facebook.
                //fbLink.NavigateUrl = "https://www.facebook.com/dialog/oauth?client_id=" + Facebook.AppID + "&redirect_uri=" + Server.UrlEncode( + "&response_type=code&scope=email";
            }


            fbLink.NavigateUrl = "https://www.facebook.com/dialog/oauth?client_id=" + Facebook.AppID + "&redirect_uri=" + Server.UrlEncode(fbRedirect) + "&response_type=code&scope=email";
            //Response.Write(fbLink.NavigateUrl);

            string accessToken = null;

            if ((Request["code"] != null) && (Request["step"] == "fb"))
            {
                accessToken = Facebook.GetAccessToken(Request["code"], fbRedirect);
            }

            if (accessToken != null)
            {
                //gem cookie
                HttpCookie aTokenCookie = new HttpCookie(Facebook.CookieID, accessToken);
                aTokenCookie.Expires = DateTime.Now.AddMonths(1);
                Response.SetCookie(aTokenCookie);

                long facebookUID = Facebook.GetFacebookUserId(accessToken);
                if (facebookUID == 0)
                {
                    Response.Write("Could not determine facebook UID from code: " + Request["code"] + "\n with token: " + accessToken);
                }

                if (facebookUID != 0)
                {
                    object         YafUserID = Facebook.GetYafUser(facebookUID);
                    MembershipUser user      = null;
                    if (YafUserID != null)
                    {
                        //log eksisterende fb bruger ind
                        user = Membership.GetUser(YafUserID);
                        DoLogin(user, false);
                    }
                    else
                    {
                        user = Membership.GetUser();
                        if (user != null)
                        {
                            //Der er en bruger logget ind, opret facebook forbindelse til den.
                            Facebook.ConnectProfileToFB(user.ProviderUserKey.ToString(), facebookUID);
                            DoLogin(user, false);
                        }
                        else
                        {
                            Facebook.FbUserInfo fbUserInfo = Facebook.GetUserInfo(accessToken);
                            if (fbUserInfo == null)
                            {
                                Response.Write("Could not get necessary user information from Facebook.");
                                return;
                            }

                            MembershipUserCollection members    = Membership.FindUsersByEmail(fbUserInfo.email);
                            MembershipUser[]         membersArr = new MembershipUser[members.Count];
                            members.CopyTo(membersArr, 0);
                            if (members.Count > 0)
                            {
                                //forbind eksisterende bruger til facebook profil
                                user = membersArr[0];
                                Facebook.ConnectProfileToFB(user.ProviderUserKey.ToString(), facebookUID);

                                //log ind
                                DoLogin(user, false);
                            }
                            else
                            {
                                //opret ny bruger, og lav fb forbindelse
                                try
                                {
                                    user = Facebook.CreateNewFbUser(fbUserInfo);
                                }
                                catch (MembershipCreateUserException MemberShipException)
                                {
                                    Response.Write(Registration.GetErrorMessage(MemberShipException.StatusCode, fbUserInfo.email));
                                    return;
                                }

                                DoLogin(user, true);
                            }
                        }
                    }
                }
            }
        }
Пример #6
0
        /// <summary>
        /// Handles the facebook return.
        /// </summary>
        private void HandleFacebookReturn()
        {
            var facebookAuth = new Facebook();

            if (YafContext.Current.Get <HttpRequestBase>().QueryString.GetFirstOrDefault(paramName: "code") != null)
            {
                var authorizationCode = YafContext.Current.Get <HttpRequestBase>().QueryString.GetFirstOrDefault(paramName: "code");
                var accessToken       = facebookAuth.GetAccessToken(authorizationCode: authorizationCode, request: this.Request);

                if (accessToken.IsNotSet())
                {
                    this.Response.Write(
                        s: string.Format(
                            format: "{2} alert('{0}');window.location.href = '{1}'; {3}",
                            YafContext.Current.Get <ILocalization>().GetText(text: "AUTH_NO_ACCESS_TOKEN"),
                            YafBuildLink.GetLink(page: ForumPages.login).Replace(oldValue: "auth.aspx", newValue: "default.aspx"),
                            ScriptBeginTag,
                            ScriptEndTag));

                    return;
                }

                if (YafContext.Current.Get <HttpRequestBase>().QueryString.GetFirstOrDefault(paramName: "state") != null &&
                    YafContext.Current.Get <HttpRequestBase>().QueryString.GetFirstOrDefault(paramName: "state")
                    == "connectCurrent")
                {
                    string message;

                    try
                    {
                        facebookAuth.ConnectUser(request: this.Request, parameters: accessToken, message: out message);
                    }
                    catch (Exception ex)
                    {
                        YafContext.Current.Get <ILogger>().Error(ex: ex, format: "Error while trying to connect the facebook user");

                        message = ex.Message;
                    }

                    if (message.IsSet())
                    {
                        this.Response.Write(
                            s: string.Format(
                                format: "{2} alert('{0}');window.location.href = '{1}'; {3}",
                                message,
                                YafBuildLink.GetLink(page: ForumPages.forum).Replace(oldValue: "auth.aspx", newValue: "default.aspx"),
                                ScriptBeginTag,
                                ScriptEndTag));
                    }
                    else
                    {
                        YafBuildLink.Redirect(page: ForumPages.forum);
                    }
                }
                else
                {
                    string message;

                    try
                    {
                        facebookAuth.LoginOrCreateUser(request: this.Request, parameters: accessToken, message: out message);
                    }
                    catch (Exception ex)
                    {
                        YafContext.Current.Get <ILogger>()
                        .Error(ex: ex, format: "Error while trying to login or register the facebook user");

                        message = ex.Message;
                    }

                    this.Response.Clear();

                    if (message.IsSet())
                    {
                        this.Response.Write(
                            s: string.Format(
                                format: "{2} alert('{0}');window.location.href = '{1}';window.close(); {3}",
                                message,
                                YafBuildLink.GetLink(page: ForumPages.login).Replace(oldValue: "auth.aspx", newValue: "default.aspx"),
                                ScriptBeginTag,
                                ScriptEndTag));
                    }
                    else
                    {
                        this.Response.Write(
                            s: string.Format(
                                format: "{1} window.location.href = '{0}';window.close(); {2}",
                                arg0: YafBuildLink.GetLink(page: ForumPages.forum).Replace(oldValue: "auth.aspx", newValue: "default.aspx"),
                                arg1: ScriptBeginTag,
                                arg2: ScriptEndTag));
                    }
                }
            }
            else if (YafContext.Current.Get <HttpRequestBase>().QueryString.GetFirstOrDefault(paramName: "error") != null)
            {
                // Return to login page if user cancels social login
                this.Response.Redirect(url: YafBuildLink.GetLink(page: ForumPages.login, fullUrl: true));
            }
            else
            {
                // Authorize first
                this.Response.Redirect(url: facebookAuth.GetAuthorizeUrl(request: this.Request), endResponse: true);
            }
        }
Пример #7
0
        /// <summary>
        /// Handles the facebook return.
        /// </summary>
        private void HandleFacebookReturn()
        {
            var facebookAuth = new Facebook();

            if (YafContext.Current.Get <HttpRequestBase>().QueryString.GetFirstOrDefault("code") != null)
            {
                var authorizationCode = YafContext.Current.Get <HttpRequestBase>().QueryString.GetFirstOrDefault("code");
                var accessToken       = facebookAuth.GetAccessToken(authorizationCode, this.Request);

                if (accessToken.IsNotSet())
                {
                    this.Response.Write(
                        "{2} alert('{0}');window.location.href = '{1}'; {3}".FormatWith(
                            YafContext.Current.Get <ILocalization>().GetText("AUTH_NO_ACCESS_TOKEN"),
                            YafBuildLink.GetLink(ForumPages.login).Replace("auth.aspx", "default.aspx"),
                            SCRIPTBEGINTAG,
                            SCRIPTENDTAG));

                    return;
                }

                if (YafContext.Current.Get <HttpRequestBase>().QueryString.GetFirstOrDefault("state") != null &&
                    YafContext.Current.Get <HttpRequestBase>().QueryString.GetFirstOrDefault("state")
                    == "connectCurrent")
                {
                    string message;

                    try
                    {
                        facebookAuth.ConnectUser(this.Request, accessToken, out message);
                    }
                    catch (Exception ex)
                    {
                        YafContext.Current.Get <ILogger>().Error(ex, "Error while trying to connect the facebook user");

                        message = ex.Message;
                    }

                    if (message.IsSet())
                    {
                        this.Response.Write(
                            "{2} alert('{0}');window.location.href = '{1}'; {3}".FormatWith(
                                message,
                                YafBuildLink.GetLink(ForumPages.forum).Replace("auth.aspx", "default.aspx"),
                                SCRIPTBEGINTAG,
                                SCRIPTENDTAG));
                    }
                    else
                    {
                        YafBuildLink.Redirect(ForumPages.forum);
                    }
                }
                else
                {
                    string message;

                    try
                    {
                        facebookAuth.LoginOrCreateUser(this.Request, accessToken, out message);
                    }
                    catch (Exception ex)
                    {
                        YafContext.Current.Get <ILogger>()
                        .Error(ex, "Error while trying to login or register the facebook user");

                        message = ex.Message;
                    }

                    this.Response.Clear();

                    if (message.IsSet())
                    {
                        this.Response.Write(
                            "{2} alert('{0}');window.location.href = '{1}';window.close(); {3}".FormatWith(
                                message,
                                YafBuildLink.GetLink(ForumPages.login).Replace("auth.aspx", "default.aspx"),
                                SCRIPTBEGINTAG,
                                SCRIPTENDTAG));
                    }
                    else
                    {
                        this.Response.Write(
                            "{1} window.location.href = '{0}';window.close(); {2}".FormatWith(
                                YafBuildLink.GetLink(ForumPages.forum).Replace("auth.aspx", "default.aspx"),
                                SCRIPTBEGINTAG,
                                SCRIPTENDTAG));
                    }
                }
            }
            else if (YafContext.Current.Get <HttpRequestBase>().QueryString.GetFirstOrDefault("error") != null)
            {
                // Return to login page if user cancels social login
                this.Response.Redirect(YafBuildLink.GetLink(ForumPages.login, true));
            }
            else
            {
                // Authorize first
                this.Response.Redirect(facebookAuth.GetAuthorizeUrl(this.Request), true);
            }
        }
Пример #8
0
        /// <summary>
        /// Handles the facebook return.
        /// </summary>
        private void HandleFacebookReturn()
        {
            var facebookAuth = new Facebook();

            if (BoardContext.Current.Get <HttpRequestBase>().QueryString.Exists("code"))
            {
                var authorizationCode = BoardContext.Current.Get <HttpRequestBase>().QueryString
                                        .GetFirstOrDefault("code");
                var accessToken = facebookAuth.GetAccessToken(
                    authorizationCode,
                    this.Request);

                if (accessToken.IsNotSet())
                {
                    BoardContext.Current.Get <HttpResponseBase>().Write(
                        string.Format(
                            "{2} alert('{0}');window.location.href = '{1}'; {3}",
                            BoardContext.Current.Get <ILocalization>().GetText("AUTH_NO_ACCESS_TOKEN"),
                            BuildLink.GetLink(ForumPages.Login).Replace(
                                "auth.aspx",
                                "default.aspx"),
                            ScriptBeginTag,
                            ScriptEndTag));

                    return;
                }

                if (BoardContext.Current.Get <HttpRequestBase>().QueryString.Exists("state") &&
                    BoardContext.Current.Get <HttpRequestBase>().QueryString.GetFirstOrDefault("state")
                    == "connectCurrent")
                {
                    string message;

                    try
                    {
                        facebookAuth.ConnectUser(this.Request, accessToken, out message);
                    }
                    catch (Exception ex)
                    {
                        BoardContext.Current.Get <ILogger>().Error(
                            ex,
                            "Error while trying to connect the facebook user");

                        message = ex.Message;
                    }

                    if (message.IsSet())
                    {
                        BoardContext.Current.Get <HttpResponseBase>().Write(
                            string.Format(
                                "{2} alert('{0}');window.location.href = '{1}'; {3}",
                                message,
                                BuildLink.GetLink(ForumPages.Board).Replace(
                                    "auth.aspx",
                                    "default.aspx"),
                                ScriptBeginTag,
                                ScriptEndTag));
                    }
                    else
                    {
                        BuildLink.Redirect(ForumPages.Board);
                    }
                }
                else
                {
                    string message;

                    try
                    {
                        facebookAuth.LoginOrCreateUser(
                            this.Request,
                            accessToken,
                            out message);
                    }
                    catch (Exception ex)
                    {
                        BoardContext.Current.Get <ILogger>().Error(
                            ex,
                            "Error while trying to login or register the facebook user");

                        message = ex.Message;
                    }

                    BoardContext.Current.Get <HttpResponseBase>().Clear();

                    if (message.IsSet())
                    {
                        BoardContext.Current.Get <HttpResponseBase>().Write(
                            string.Format(
                                "{2} alert('{0}');window.location.href = '{1}';window.close(); {3}",
                                message,
                                BuildLink.GetLink(ForumPages.Login).Replace(
                                    "auth.aspx",
                                    "default.aspx"),
                                ScriptBeginTag,
                                ScriptEndTag));
                    }
                    else
                    {
                        BoardContext.Current.Get <HttpResponseBase>().Write(
                            string.Format(
                                "{1} window.location.href = '{0}';window.close(); {2}",
                                BuildLink.GetLink(ForumPages.Board).Replace(
                                    "auth.aspx",
                                    "default.aspx"),
                                ScriptBeginTag,
                                ScriptEndTag));
                    }
                }
            }
            else if (BoardContext.Current.Get <HttpRequestBase>().QueryString.Exists("error"))
            {
                // Return to login page if user cancels social login
                BoardContext.Current.Get <HttpResponseBase>()
                .Redirect(BuildLink.GetLink(ForumPages.Login, true));
            }
            else
            {
                // Authorize first
                BoardContext.Current.Get <HttpResponseBase>().Redirect(
                    facebookAuth.GetAuthorizeUrl(this.Request),
                    true);
            }
        }