Beispiel #1
0
        /// <summary>
        /// Gets the SSO application auth token.
        /// </summary>
        /// <param name="applicationName">Name of the application.</param>
        public string GetSSOApplicationAuthToken(string applicationName)
        {
            if (StringUtils.IsNullOrEmptyOrWS(applicationName))
            {
                return(string.Empty);
            }

            try
            {
                Application application = GetApplication("", applicationName);

                if (application == null)
                {
                    return(string.Empty);
                }

                string newSSOAuthToken;
                string ssoAuthtoken = application.IsAdmin
                    ? SSOAuthWS.GetSSOMasterApplicationAuthToken(
                    GetSSOAuthData(FCMConfig.Security.SSOApplicationID, SSOAuthToken),
                    out newSSOAuthToken)
                    : SSOAuthWS.GetSSOApplicationAuthToken(
                    GetSSOAuthData(FCMConfig.Security.SSOApplicationID, SSOAuthToken),
                    application.ApplicationID,
                    out newSSOAuthToken);

                SSOAuthToken = newSSOAuthToken;

                if (StringUtils.IsNullOrEmptyOrWS(ssoAuthtoken))
                {
                    return(string.Empty);
                }

                return(ssoAuthtoken);
            }
            catch (SoapException ex)
            {
                Logger.Log(LogLevels.Error, exception: ex);

                if (!StringUtils.IsNullOrEmptyOrWS(ex.Message) && ex.Message.Contains("00401"))
                {
                    FCMBusiness.ClearSSOCache();
                    return(GetSSOApplicationAuthToken(applicationName));
                }

                return(string.Empty);
            }
            catch (Exception ex)
            {
                Logger.Log(LogLevels.Error, exception: ex);
                return(string.Empty);
            }
        }