Пример #1
0
        private CswEnumAuthenticationStatus _authenticate()
        {
            CswEnumAuthenticationStatus AuthenticationStatus = CswEnumAuthenticationStatus.Unknown;

            try
            {
                string ParsedAccessId = _AuthenticationRequest.CustomerId.ToLower().Trim();
                if (false == string.IsNullOrEmpty(ParsedAccessId))
                {
                    _CswSessionManager.setAccessId(ParsedAccessId);
                }
                else
                {
                    throw new CswDniException(CswEnumErrorType.Warning, "There is no configuration information for this AccessId", "AccessId is null or empty.");
                }
            }
            catch (CswDniException ex)
            {
                if (!ex.Message.Contains("There is no configuration information for this AccessId"))
                {
                    throw ex;
                }
                else
                {
                    AuthenticationStatus = CswEnumAuthenticationStatus.NonExistentAccessId;
                }
            }

            if (AuthenticationStatus == CswEnumAuthenticationStatus.Unknown)
            {
                AuthenticationStatus = _CswSessionManager.beginSession(_AuthenticationRequest);
            }

            // case 21211
            if (AuthenticationStatus == CswEnumAuthenticationStatus.Authenticated)
            {
                // Removed for case 28617.  See case 28621.
                //// case 21036
                //if( _AuthenticationRequest.IsMobile &&
                //    false == _CswNbtResources.Modules.IsModuleEnabled( CswNbtModuleName.SI ) )
                //{
                //    AuthenticationStatus = AuthenticationStatus.ModuleNotEnabled;
                //    _CswSessionManager.clearSession();
                //}
                CswLicenseManager LicenseManager = new CswLicenseManager(_CswNbtResources);
                if (LicenseManager.MustShowLicense(_CswNbtResources.CurrentUser))
                {
                    if (LicenseManager.AllowShowLicense(_CswNbtResources.CurrentUser))
                    {
                        // BZ 8133 - make sure they've seen the License
                        AuthenticationStatus = CswEnumAuthenticationStatus.ShowLicense;
                    }
                    else
                    {
                        // case 30086 - prevent login if admin hasn't accepted the license yet
                        AuthenticationStatus = CswEnumAuthenticationStatus.NoLicense;
                        _CswSessionManager.clearSession();
                    }
                }
                else if (_CswNbtResources.CurrentNbtUser.PasswordIsExpired)
                {
                    // BZ 9077 - Password expired
                    AuthenticationStatus = CswEnumAuthenticationStatus.ExpiredPassword;
                }
                else if (1 < _CswNbtResources.CswSessionManager.SessionsList.getSessionCountForUser(_CswNbtResources.AccessId, _AuthenticationRequest.UserName) &&
                         false == _AuthenticationRequest.IsMobile &&
                         CswNbtObjClassUser.ChemSWAdminUsername != _CswNbtResources.CurrentUser.Username)
                {
                    AuthenticationStatus = CswEnumAuthenticationStatus.AlreadyLoggedIn;
                }
            }

            return(AuthenticationStatus);
        }
Пример #2
0
 public CswEnumAuthenticationStatus Authenticate(CswWebSvcSessionAuthenticateData.Authentication.Request AuthenticationRequest)
 {
     AuthenticationRequest.IpAddress = CswWebSvcCommonMethods.getIpAddress();
     return(CswSessionManager.beginSession(AuthenticationRequest));
 }//Authenticate()