/// <summary> /// Wap logout. /// </summary> public bool WapLogout() { try { WebAppsLauncherWS.LogoffUserSession(GetSSOWebAppsLauncherAuthData()); return(true); } catch (SoapException ex) { Logger.Log(LogLevels.Error, exception: ex); if (!StringUtils.IsNullOrEmptyOrWS(ex.Message) && ex.Message.Contains("00401")) { return(WapLogout()); } return(false); } catch (Exception ex) { Logger.Log(LogLevels.Error, exception: ex); return(false); } }
/// <summary> /// Gets the header and footer. /// </summary> /// <param name="header">The header.</param> /// <param name="footer">The footer.</param> /// <param name="forCurrentUser">if set to <c>true</c> gets the header and footer for current user.</param> public void GetHeaderAndFooter(out string header, out string footer, bool forCurrentUser = false) { header = string.Empty; footer = string.Empty; try { string culture = CultureHelper.GetCulture(); string cacheKey = CacheHelper.BuildCacheKey("AppsHeaderFooter", culture, forCurrentUser); if (FCMConfig.Data.EnableCache && CacheUtils.Contains(cacheKey)) { header = (string)CacheUtils.GetItem(cacheKey); footer = (string)CacheUtils.GetItem(cacheKey + "_AdditionalParam"); } else { if (forCurrentUser) { header = WebAppsLauncherWS.GetHeaderAndFooter(GetSSOWebAppsLauncherAuthData(), culture, out footer); } else { header = WebAppsLauncherWS.GetAllApplicationsHeaderAndFooter(culture, out footer); } if (FCMConfig.Data.EnableCache) { CacheUtils.Add(cacheKey, header, null, DateTimeHelper.GetSvcProvDateTimeNow().AddSeconds(FCMConfig.Data.LongCacheDuration), TimeSpan.Zero, cacheNullObjects: FCMConfig.Data.CacheNullObjects); CacheUtils.Add(cacheKey + "_AdditionalParam", footer, null, DateTimeHelper.GetSvcProvDateTimeNow().AddSeconds(FCMConfig.Data.LongCacheDuration), TimeSpan.Zero, cacheNullObjects: FCMConfig.Data.CacheNullObjects); } } } catch (SoapException ex) { Logger.Log(LogLevels.Error, exception: ex); if (!StringUtils.IsNullOrEmptyOrWS(ex.Message) && ex.Message.Contains("00401")) { FCMBusiness.ClearSSOCache(); GetHeaderAndFooter(out header, out footer); } } catch (Exception ex) { Logger.Log(LogLevels.Error, exception: ex); } }
/// <summary> /// Wap login. /// </summary> /// <param name="username">The username.</param> /// <param name="password">The password.</param> public User WapLogin(string username, string password) { if (StringUtils.IsNullOrEmptyOrWS(username) || StringUtils.IsNullOrEmptyOrWS(password)) { return(null); } try { string culture = CultureHelper.GetCulture(); byte[] passwordHash = EncryptionUtils.ComputeMD5Hash(string.Format("{0}/{1}", password, username.ToLower())); string passwordHashString = Convert.ToBase64String(passwordHash); string sessionToken; WebApps_UserData userData; WebApps_UserData masterUserData; WebApps_CompanyData companyData; int groupID; WebApps_ApplicationRole[] applicationRolesDataList; string headerHTML; string footerHTML; WebApps_Message[] messageDataList; bool passwordExpired; bool loggedOn = WebAppsLauncherWS.LogonUser(GetSSOWebAppsLauncherAuthData(), culture, username, passwordHashString, out sessionToken, out userData, out masterUserData, out companyData, out groupID, out applicationRolesDataList, out headerHTML, out footerHTML, out messageDataList, out passwordExpired); WebAppsToken = sessionToken; if (!loggedOn) { Logger.Log(LogLevels.Debug, string.Format("User not logged in! | username:'******'", username)); return(null); } User user = null; if (!ReadUser(ref user, userData, companyData, masterUserData, groupID)) { return(null); } if (!user.IsSuperUser) { SynchronizeUser(ValidationUtils.GetLong(masterUserData.UserID, 0), masterUserData.Username, -666, user.ProvisioningGroupID, user.Firstname, user.Lastname, user.Place); } bool synchronised = SynchronizeUser(user.UserID, user.Username, user.ParentID, user.ProvisioningGroupID, user.Firstname, user.Lastname, user.Place); if (!synchronised) { Logger.Log(LogLevels.Debug, string.Format("User not synchronized! | user.UserID:'{0}'", user.UserID)); return(null); } if (user.IsChildUser) { user.ChildUserID = user.UserID; user.UserID = user.ParentID; } UserID = user.UserID; SessionUtils.SetValue(FCMConfig.Project.DefaultName + ".LastSSOSessionRefreshTime", DateTimeHelper.GetSvcProvDateTimeNow()); return(user); } catch (SoapException ex) { Logger.Log(LogLevels.Error, string.Format("username:'******'", username), ex); if (!StringUtils.IsNullOrEmptyOrWS(ex.Message) && ex.Message.Contains("00401")) { FCMBusiness.ClearSSOCache(); return(WapLogin(username, password)); } return(null); } catch (Exception ex) { Logger.Log(LogLevels.Error, string.Format("username:'******'", username), ex); return(null); } }