private void ProcessEmailActivation(string email) { var user = CoreContext.UserManager.GetUserByEmail(email); if (user.ID.Equals(Constants.LostUser.ID)) { ShowError(Resource.ErrorConfirmURLError); } else if (user.ActivationStatus == EmployeeActivationStatus.Activated) { Response.Redirect("~/"); } else { try { SecurityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem); user.ActivationStatus = EmployeeActivationStatus.Activated; CoreContext.UserManager.SaveUserInfo(user); } finally { SecurityContext.Logout(); CookiesManager.ClearCookies(CookiesType.AuthKey); } var redirectUrl = String.Format("~/auth.aspx?confirmed-email={0}", email); Response.Redirect(redirectUrl, true); } }
public static void ProcessLogout() { //logout CookiesManager.ClearCookies(CookiesType.AuthKey); CookiesManager.ClearCookies(CookiesType.SocketIO); SecurityContext.Logout(); }
private void RequestCode(HttpContext context) { var token = GetToken(context.Request.Query["code"]); if (token == null) { Logger.Error("BoxApp: token is null"); throw new SecurityException("Access token is null"); } var boxUserId = context.Request.Query["userId"]; if (AuthContext.IsAuthenticated) { if (!CurrentUser(boxUserId)) { Logger.Debug("BoxApp: logout for " + boxUserId); CookiesManager.ClearCookies(CookiesType.AuthKey); AuthContext.Logout(); } } if (!AuthContext.IsAuthenticated) { var userInfo = GetUserInfo(token, out var isNew); if (userInfo == null) { Logger.Error("BoxApp: UserInfo is null"); throw new Exception("Profile is null"); } var cookiesKey = SecurityContext.AuthenticateMe(userInfo.ID); CookiesManager.SetCookies(CookiesType.AuthKey, cookiesKey); MessageService.Send(MessageAction.LoginSuccessViaSocialApp); if (isNew) { var userHelpTourSettings = SettingsManager.LoadForCurrentUser <UserHelpTourSettings>(); userHelpTourSettings.IsNewUser = true; SettingsManager.SaveForCurrentUser(userHelpTourSettings); PersonalSettingsHelper.IsNewUser = true; PersonalSettingsHelper.IsNotActivated = true; } if (!string.IsNullOrEmpty(boxUserId) && !CurrentUser(boxUserId)) { AddLinker(boxUserId); } } TokenHelper.SaveToken(token); var fileId = context.Request.Query["id"]; context.Response.Redirect(FilesLinkUtility.GetFileWebEditorUrl(ThirdPartySelector.BuildAppFileId(AppAttr, fileId)), true); }
private void RequestCode(HttpContext context) { var token = GetToken(context.Request["code"]); if (token == null) { Global.Logger.Error("BoxApp: token is null"); throw new SecurityException("Access token is null"); } var boxUserId = context.Request["userId"]; if (SecurityContext.IsAuthenticated) { if (!CurrentUser(boxUserId)) { Global.Logger.Debug("BoxApp: logout for " + boxUserId); CookiesManager.ClearCookies(CookiesType.AuthKey); SecurityContext.Logout(); } } if (!SecurityContext.IsAuthenticated) { bool isNew; var userInfo = GetUserInfo(token, out isNew); if (userInfo == null) { Global.Logger.Error("BoxApp: UserInfo is null"); throw new Exception("Profile is null"); } CookiesManager.AuthenticateMeAndSetCookies(userInfo.Tenant, userInfo.ID, MessageAction.LoginSuccessViaSocialApp); if (isNew) { UserHelpTourHelper.IsNewUser = true; PersonalSettings.IsNewUser = true; PersonalSettings.IsNotActivated = true; } if (!string.IsNullOrEmpty(boxUserId) && !CurrentUser(boxUserId)) { AddLinker(boxUserId); } } Token.SaveToken(token); var fileId = context.Request["id"]; context.Response.Redirect(FilesLinkUtility.GetFileWebEditorUrl(ThirdPartySelector.BuildAppFileId(AppAttr, fileId)), true); }
public ActionResult SignOut() { var loginName = CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID).DisplayUserName(false); //Logout CookiesManager.ClearCookies(CookiesType.AuthKey); SecurityContext.Logout(); Session.Clear(); MessageService.Send(System.Web.HttpContext.Current.Request, loginName, MessageAction.Logout); return(RedirectToRoute("Login", null)); }
[Read("logout")]// temp fix public void Logout() { if (SecurityContext.IsAuthenticated) { CookiesManager.ResetUserCookie(SecurityContext.CurrentAccount.ID); } CookiesManager.ClearCookies(CookiesType.AuthKey); CookiesManager.ClearCookies(CookiesType.SocketIO); SecurityContext.Logout(); }
void ProcessLogout() { try { WebItemManager.Instance.ItemGlobalHandlers.Logout(SecurityContext.CurrentAccount.ID); } finally { //logout UserOnlineManager.Instance.UnRegistryOnlineUser(SecurityContext.CurrentAccount.ID); if (!SecurityContext.DemoMode) { CookiesManager.ClearCookies(CookiesType.AuthKey); } SecurityContext.Logout(); } }
private void ShowError(string message, bool redirect) { var confirm = Page as confirm; if (confirm != null) { confirm.ErrorMessage = HttpUtility.HtmlEncode(message); } //Logout all users. Ibo nehui SecurityContext.Logout(); CookiesManager.ClearCookies(CookiesType.AuthKey); //Register redirect script if (redirect) { RegisterRedirect(); } }
protected void DeleteProfile(object sender, EventArgs e) { try { var uid = User.ID; SecurityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem); UserPhotoManager.RemovePhoto(Guid.Empty, uid); CoreContext.UserManager.DeleteUser(uid); operationBlock.Visible = false; result.InnerHtml = Resources.Resource.DeleteProfileSuccess; } catch (Exception ex) { result.InnerHtml = ex.Message; } finally { SecurityContext.Logout(); CookiesManager.ClearCookies(CookiesType.AuthKey); } }
private static void RequestCode(HttpContext context) { var state = context.Request["state"]; Global.Logger.Debug("GoogleDriveApp: state - " + state); if (string.IsNullOrEmpty(state)) { Global.Logger.Error("GoogleDriveApp: empty state"); throw new Exception("Empty state"); } var token = GetToken(context.Request["code"]); if (token == null) { Global.Logger.Error("GoogleDriveApp: token is null"); throw new SecurityException("Access token is null"); } var stateJson = JObject.Parse(state); var googleUserId = stateJson.Value <string>("userId"); if (SecurityContext.IsAuthenticated) { if (!CurrentUser(googleUserId)) { Global.Logger.Debug("GoogleDriveApp: logout for " + googleUserId); CookiesManager.ClearCookies(CookiesType.AuthKey); SecurityContext.Logout(); } } if (!SecurityContext.IsAuthenticated) { bool isNew; var userInfo = GetUserInfo(token, out isNew); if (userInfo == null) { Global.Logger.Error("GoogleDriveApp: UserInfo is null"); throw new Exception("Profile is null"); } var cookiesKey = SecurityContext.AuthenticateMe(userInfo.ID); CookiesManager.SetCookies(CookiesType.AuthKey, cookiesKey); MessageService.Send(HttpContext.Current.Request, MessageAction.LoginSuccessViaSocialAccount); if (isNew) { UserHelpTourHelper.IsNewUser = true; PersonalSettings.IsNewUser = true; PersonalSettings.IsNotActivated = true; } if (!string.IsNullOrEmpty(googleUserId) && !CurrentUser(googleUserId)) { AddLinker(googleUserId); } } Token.SaveToken(token); var action = stateJson.Value <string>("action"); switch (action) { case "create": var folderId = stateJson.Value <string>("folderId"); context.Response.Redirect(App.Location + "?" + FilesLinkUtility.FolderId + "=" + HttpUtility.UrlEncode(folderId), true); return; case "open": var idsArray = stateJson.Value <JArray>("ids") ?? stateJson.Value <JArray>("exportIds"); if (idsArray == null) { Global.Logger.Error("GoogleDriveApp: ids is empty"); throw new Exception("File id is null"); } var fileId = idsArray.ToObject <List <string> >().FirstOrDefault(); var driveFile = GetDriveFile(fileId, token); if (driveFile == null) { Global.Logger.Error("GoogleDriveApp: file is null"); throw new Exception("File not found"); } var jsonFile = JObject.Parse(driveFile); var ext = GetCorrectExt(jsonFile); if (FileUtility.ExtsMustConvert.Contains(ext) || GoogleLoginProvider.GoogleDriveExt.Contains(ext)) { Global.Logger.Debug("GoogleDriveApp: file must be converted"); if (FilesSettings.ConvertNotify) { context.Response.Redirect(App.Location + "?" + FilesLinkUtility.FileId + "=" + HttpUtility.UrlEncode(fileId), true); return; } fileId = CreateConvertedFile(driveFile, token); } context.Response.Redirect(FilesLinkUtility.GetFileWebEditorUrl(ThirdPartySelector.BuildAppFileId(AppAttr, fileId)), true); return; } Global.Logger.Error("GoogleDriveApp: Action not identified"); throw new Exception("Action not identified"); }
protected void Page_Load(object sender, EventArgs e) { Page.RegisterStyle("~/UserControls/Common/Authorize/css/authorize.less") .RegisterBodyScripts("~/UserControls/Common/Authorize/js/authorize.js"); if (RecaptchaEnable) { Page .RegisterBodyScripts("~/usercontrols/common/authorize/js/recaptchacontroller.js"); } ThirdpartyEnable = SetupInfo.ThirdPartyAuthEnabled && AccountLinkControl.IsNotEmpty; if (Request.DesktopApp() && PrivacyRoomSettings.Available && PrivacyRoomSettings.Enabled) { ThirdpartyEnable = false; Page .RegisterBodyScripts("~/UserControls/Common/Authorize/js/desktop.js"); } Login = ""; PasswordHash = ""; HashId = ""; //Account link control bool withAccountLink = false; if (ThirdpartyEnable) { var accountLink = (AccountLinkControl)LoadControl(AccountLinkControl.Location); accountLink.Visible = true; accountLink.ClientCallback = "authCallback"; accountLink.SettingsView = false; signInPlaceholder.Controls.Add(accountLink); withAccountLink = true; } //top panel var master = Page.Master as BaseTemplate; if (master != null) { master.TopStudioPanel.DisableProductNavigation = true; master.TopStudioPanel.DisableSearch = true; master.TopStudioPanel.DisableGift = true; } Page.Title = HeaderStringHelper.GetPageTitle(Resource.Authorization); pwdReminderHolder.Controls.Add(LoadControl(PwdTool.Location)); var msg = Auth.GetAuthMessage(Request["am"]); var urlError = Request.QueryString["error"]; if (!string.IsNullOrEmpty(msg)) { ErrorMessage = msg; } else if (urlError == "ipsecurity") { ErrorMessage = Resource.LoginFailIPSecurityMsg; } var thirdPartyProfile = Request.Url.GetProfile(); if ((IsPostBack || thirdPartyProfile != null) && !SecurityContext.IsAuthenticated) { if (!AuthProcess(thirdPartyProfile, withAccountLink)) { return; } CookiesManager.ClearCookies(CookiesType.SocketIO); Response.Redirect(Context.GetRefererURL(), true); } ProcessConfirmedEmailCondition(); ProcessConfirmedEmailLdap(); }
public void Logout() { CookiesManager.ClearCookies(CookiesType.AuthKey); CookiesManager.ClearCookies(CookiesType.SocketIO); }
protected void Page_Load(object sender, EventArgs e) { Page.RegisterStyle("~/UserControls/Common/Authorize/css/authorize.less") .RegisterBodyScripts("~/UserControls/Common/Authorize/js/authorize.js"); Login = ""; Password = ""; HashId = ""; //Account link control bool withAccountLink = false; if (SetupInfo.ThirdPartyAuthEnabled && AccountLinkControl.IsNotEmpty) { var accountLink = (AccountLinkControl)LoadControl(AccountLinkControl.Location); accountLink.Visible = true; accountLink.ClientCallback = "authCallback"; accountLink.SettingsView = false; signInPlaceholder.Controls.Add(accountLink); withAccountLink = true; } //top panel var master = Page.Master as BaseTemplate; if (master != null) { master.TopStudioPanel.DisableProductNavigation = true; master.TopStudioPanel.DisableSearch = true; } Page.Title = HeaderStringHelper.GetPageTitle(Resource.Authorization); pwdReminderHolder.Controls.Add(LoadControl(PwdTool.Location)); var msg = Request["m"]; var urlError = Request.QueryString["error"]; if (!string.IsNullOrEmpty(msg)) { ErrorMessage = msg; } else if (urlError == "ipsecurity") { ErrorMessage = Resource.LoginFailIPSecurityMsg; } var thirdPartyProfile = Request.Url.GetProfile(); if ((IsPostBack || thirdPartyProfile != null) && !SecurityContext.IsAuthenticated) { if (!AuthProcess(thirdPartyProfile, withAccountLink)) { return; } CookiesManager.ClearCookies(CookiesType.SocketIO); var refererURL = (string)Session["refererURL"]; if (string.IsNullOrEmpty(refererURL)) { Response.Redirect(CommonLinkUtility.GetDefault(), true); } else { Session["refererURL"] = null; Response.Redirect(refererURL, true); } } ProcessConfirmedEmailCondition(); }
internal static void RequestCode(HttpContext context) { var state = context.Request["state"]; Global.Logger.Debug("GoogleDriveApp: state - " + state); if (string.IsNullOrEmpty(state)) { Global.Logger.Info("GoogleDriveApp: empty state"); throw new Exception("Empty state"); } var token = GetToken(context.Request["code"]); if (token == null) { Global.Logger.Info("GoogleDriveApp: token is null"); throw new SecurityException("Access token is null"); } var stateJson = JObject.Parse(state); if (SecurityContext.IsAuthenticated) { Global.Logger.Debug("GoogleDriveApp: is authenticated"); if (!CurrentUser(stateJson.Value <string>("userId"))) { Global.Logger.Debug("GoogleDriveApp: logout"); CookiesManager.ClearCookies(CookiesType.AuthKey); SecurityContext.Logout(); } } if (!SecurityContext.IsAuthenticated) { var userInfo = GetUserInfo(token); if (userInfo == null) { Global.Logger.Error("GoogleDriveApp: UserInfo is null"); throw new Exception("Profile is null"); } var cookiesKey = SecurityContext.AuthenticateMe(userInfo.ID); CookiesManager.SetCookies(CookiesType.AuthKey, cookiesKey); } Token.SaveToken(token); var action = stateJson.Value <string>("action"); switch (action) { case "create": var folderId = stateJson.Value <string>("folderId"); context.Response.Redirect(App.Location + "?" + FilesLinkUtility.FolderId + "=" + folderId, true); return; case "open": var idsArray = stateJson.Value <JArray>("ids") ?? stateJson.Value <JArray>("exportIds"); if (idsArray == null) { Global.Logger.Error("GoogleDriveApp: ids is empty"); throw new Exception("File id is null"); } var fileId = idsArray.ToObject <List <string> >().FirstOrDefault(); var driveFile = GetDriveFile(fileId, token); if (driveFile == null) { Global.Logger.Error("GoogleDriveApp: file is null"); throw new Exception("File not found"); } var jsonFile = JObject.Parse(driveFile); var ext = GetCorrectExt(jsonFile); var mimeType = (jsonFile.Value <string>("mimeType") ?? "").ToLower(); if (FileUtility.ExtsMustConvert.Contains(ext) || GoogleMimeTypes.Keys.Contains(mimeType)) { Global.Logger.Debug("GoogleDriveApp: file must be converted"); if (FilesSettings.ConvertNotify) { context.Response.Redirect(App.Location + "?" + FilesLinkUtility.FileId + "=" + fileId, true); return; } fileId = CreateConvertedFile(driveFile, token); } context.Response.Redirect(FilesLinkUtility.GetFileWebEditorUrl(fileId) + "&" + FilesLinkUtility.Action + "=app", true); return; } Global.Logger.Error("GoogleDriveApp: Action not identified"); throw new Exception("Action not identified"); }
private UserInfo GetUserByThirdParty(LoginProfile loginProfile) { try { if (!string.IsNullOrEmpty(loginProfile.AuthorizationError)) { // ignore cancellation if (loginProfile.AuthorizationError != "Canceled at provider") { throw new Exception(loginProfile.AuthorizationError); } return(Constants.LostUser); } var userInfo = Constants.LostUser; Guid userId; if (TryGetUserByHash(loginProfile.HashId, out userId)) { userInfo = UserManager.GetUsers(userId); } var isNew = false; if (CoreBaseSettings.Personal) { if (UserManager.UserExists(userInfo.ID) && SetupInfo.IsSecretEmail(userInfo.Email)) { try { SecurityContext.AuthenticateMeWithoutCookie(ASC.Core.Configuration.Constants.CoreSystem); UserManager.DeleteUser(userInfo.ID); userInfo = Constants.LostUser; } finally { SecurityContext.Logout(); } } if (!UserManager.UserExists(userInfo.ID)) { userInfo = JoinByThirdPartyAccount(loginProfile); isNew = true; } } if (isNew) { //TODO: //var spam = HttpContext.Current.Request["spam"]; //if (spam != "on") //{ // try // { // const string _databaseID = "com"; // using (var db = DbManager.FromHttpContext(_databaseID)) // { // db.ExecuteNonQuery(new SqlInsert("template_unsubscribe", false) // .InColumnValue("email", userInfo.Email.ToLowerInvariant()) // .InColumnValue("reason", "personal") // ); // Log.Debug(string.Format("Write to template_unsubscribe {0}", userInfo.Email.ToLowerInvariant())); // } // } // catch (Exception ex) // { // Log.Debug(string.Format("ERROR write to template_unsubscribe {0}, email:{1}", ex.Message, userInfo.Email.ToLowerInvariant())); // } //} StudioNotifyService.UserHasJoin(); UserHelpTourHelper.IsNewUser = true; PersonalSettingsHelper.IsNewUser = true; } return(userInfo); } catch (Exception) { CookiesManager.ClearCookies(CookiesType.AuthKey); CookiesManager.ClearCookies(CookiesType.SocketIO); SecurityContext.Logout(); throw; } }