/// <summary> /// Constructor with three parameters /// </summary> /// <param name="appId"></param> /// <param name="extendedPermissions"></param> /// <param name="logout"></param> public FacebookForm(string appId, string[] extendedPermissions, bool logout) { var oauth = new FacebookOAuthClient { AppId = appId }; var loginParameters = new Dictionary<string, object> { { "response_type", "token" }, { "display", "popup" } }; if (extendedPermissions != null && extendedPermissions.Length > 0) { var scope = new StringBuilder(); scope.Append(string.Join(",", extendedPermissions)); loginParameters["scope"] = scope.ToString(); } var loginUrl = oauth.GetLoginUrl(loginParameters); if (logout) { var logoutParameters = new Dictionary<string, object> { { "next", loginUrl } }; this.navigateUrl = oauth.GetLogoutUrl(logoutParameters); } else { this.navigateUrl = loginUrl; } InitializeComponent(); }
// // GET: /Account/LogOff/ public ActionResult LogOff() { FormsAuthentication.SignOut(); var oAuthClient = new FacebookOAuthClient {RedirectUri = new Uri(LogoffUrl)}; var logoutUrl = oAuthClient.GetLogoutUrl(); return Redirect(logoutUrl.AbsoluteUri); }
// // GET: /Account/LogOff/ public ActionResult LogOff() { FormsAuthentication.SignOut(); var oAuthClient = new FacebookOAuthClient(); oAuthClient.RedirectUri = new Uri(ConfigurationManager.AppSettings["LogoffUrl"]); var logoutUrl = oAuthClient.GetLogoutUrl(); return Redirect(logoutUrl.AbsoluteUri); }
/// <summary> /// Gets the login url. /// </summary> /// <param name="appId"> /// The app id. /// </param> /// <param name="redirectUri"> /// The redirect Uri. /// </param> /// <param name="extendedPermissions"> /// The extended permissions (scope). /// </param> /// <param name="logout"> /// Indicates whether to logout existing logged in user or not. /// </param> /// <param name="loginParameters"> /// The login parameters. /// </param> /// <returns> /// The url to navigate. /// </returns> public static Uri GetLoginUrl(string appId, Uri redirectUri, string[] extendedPermissions, bool logout, IDictionary<string, object> loginParameters) { Contract.Requires(!string.IsNullOrEmpty(appId)); Contract.Ensures(Contract.Result<Uri>() != null); var oauth = new FacebookOAuthClient { AppId = appId, RedirectUri = redirectUri }; var defaultLoginParameters = new Dictionary<string, object> { { "response_type", "code" }, // make it "code" by default for security reasons. #if WINDOWS_PHONE { "display", "touch" } #else { "display", "popup" } #endif }; if (extendedPermissions != null && extendedPermissions.Length > 0) { defaultLoginParameters["scope"] = string.Join(",", extendedPermissions); } var mergedLoginParameters = FacebookUtils.Merge(defaultLoginParameters, loginParameters); var loginUrl = oauth.GetLoginUrl(mergedLoginParameters); Uri navigateUrl; if (logout) { var logoutParameters = new Dictionary<string, object> { { "next", loginUrl } }; navigateUrl = oauth.GetLogoutUrl(logoutParameters); } else { navigateUrl = loginUrl; } return navigateUrl; }
public ActionResult LogOff() { if (FacebookWebContext.Current.IsAuthenticated()) { FacebookWebContext.Current.DeleteAuthCookie(); FacebookOAuthClient oauth = new FacebookOAuthClient(FacebookWebContext.Current.Settings); var logoutUrl = oauth.GetLogoutUrl(new Dictionary<string, object> { { "next", Request.UrlReferrer.AbsoluteUri.ToString() } }); FormsService.SignOut(); return Redirect(logoutUrl.AbsoluteUri); } FormsService.SignOut(); return RedirectToAction("Login"); }