/// <summary>
        /// Test AD connectivity
        /// </summary>
        /// <param name="user">User</param>
        private static void TestAD(UserInfo user)
        {
            LdapAuthentication adAuth = null;

            try
            {
                // Connection au LDAP pour vérifier le compte user
                adAuth = new LdapAuthentication(user.GetMessages());

                // Check
                adAuth.Test();

                // We are good here
                // Let's disconnect
            }
            finally
            {
                // On va fermer proprement la connexion
                // au serveur LDAP
                if (adAuth != null)
                {
                    try
                    {
                        adAuth.Disconnect();
                    }
                    catch (Exception) { } // On ignore cette erreur
                }
            }
        }
示例#2
0
        /// <summary>
        /// Connexion à l'active Directory
        /// pour vérifier le compte utilisateur
        /// et reourner la liste des groupes auxquels
        /// cet dernier
        /// </summary>
        private void ConnectToLDAP()
        {
            LdapAuthentication adAuth = null;

            try
            {
                // Connection au LDAP pour vérifier le compte user
                adAuth = new LdapAuthentication(GetMessages());
                if (!adAuth.UserExists(GetLogin(), GetPassword()))
                {
                    // Le compte est introuvable
                    // ou le login/mot de passe est erroné
                    if (GetPassword() == null)
                    {
                        throw new Exception(GetMessages().GetString("LDAPUnknownUser", GetLogin(), true));
                    }
                    else
                    {
                        throw new Exception(GetMessages().GetString("LDAPUnknownUserOrWrongPassword", GetLogin(), true));
                    }
                }
                // On a trouvé l'utilisation sur le serveur LDAP
                // On récupère son nom
                this.DisplayName = adAuth.GetDisplayName();

                if (GetRequiredRigth() != UserInfo.RightNA)
                {
                    // We need to check against a specific AD group for this application
                    // First, let's extract all group
                    Hashtable LDAPGroups = adAuth.GetGroups();

                    this.DisplayACardInLookupTool    = LDAPGroups.ContainsValue(ConfigurationManager.AppSettings["CanDisplayACardInLookupTool"]);
                    this.ProcessALookupInLookupTool  = LDAPGroups.ContainsValue(ConfigurationManager.AppSettings["CanProcessALookupInLookupTool"]);
                    this.ProcessAResverseLookup      = LDAPGroups.ContainsValue(ConfigurationManager.AppSettings["CanProcessAResverseLookup"]);
                    this.CreateATransactionalCard    = LDAPGroups.ContainsValue(ConfigurationManager.AppSettings["CanCreateATransactionalCard"]);
                    this.CreateAProfilCard           = LDAPGroups.ContainsValue(ConfigurationManager.AppSettings["CanCreateAProfilCard"]);
                    this.UpdateTokenAfterKeyRotation = LDAPGroups.ContainsValue(ConfigurationManager.AppSettings["CanUpdateTokenAfterKeyRotation"]);
                    this.IsARobot      = LDAPGroups.ContainsValue(ConfigurationManager.AppSettings["IsARobot"]);
                    this.EncryptCard   = LDAPGroups.ContainsValue(ConfigurationManager.AppSettings["CanEncryptCard"]);
                    this.EncryptFOCard = LDAPGroups.ContainsValue(ConfigurationManager.AppSettings["CanEncryptFOCard"]);
                }
            }
            catch (Exception e)
            {
                // Erreur lors de la connexion au serveur LDAP
                throw new Exception(GetMessages().GetString("LDAPConnectionError", GetLogin(), e.Message, true));
            }
            finally
            {
                // On va fermer proprement la connexion
                // au serveur LDAP
                if (adAuth != null)
                {
                    try
                    {
                        adAuth.Disconnect();
                    }
                    catch (Exception) { } // On ignore cette erreur
                }
            }
        }