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