Example #1
0
        /// <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);
            }
        }
Example #2
0
        /// <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);
            }
        }
Example #3
0
        /// <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);
            }
        }