/// <summary>
        ///
        /// </summary>
        /// <param name="matriculeUser"></param>
        /// <returns></returns>
        public override string[] GetRolesForUser(string matriculeUser)
        {
            if (!HttpContext.Current.User.Identity.IsAuthenticated)
            {
                return(null);
            }

            var userRoles = new string[] { };

            using (ChaabiDocHFEntities dbContext = new ChaabiDocHFEntities())
            {
                var selectedUser = (from us in dbContext.Utilisateurs.Include("Roles")
                                    where string.Compare(us.matriculeUser, matriculeUser, StringComparison.OrdinalIgnoreCase) == 0
                                    select us).FirstOrDefault();


                if (selectedUser != null)
                {
                    //userRoles = new[] { selectedUser.Role.nomRole.ToString() };
                    userRoles = new[] { selectedUser.Roles.Select(r => r.nomRole).ToString() };
                }

                return(userRoles.ToArray());
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="matriculeUser"></param>
        /// <param name="userIsOnline"></param>
        /// <returns></returns>
        public override MembershipUser GetUser(string matriculeUser, bool userIsOnline)
        {
            using (ChaabiDocHFEntities dbContext = new ChaabiDocHFEntities())
            {
                var user = (from us in dbContext.Utilisateurs
                            where string.Compare(matriculeUser, us.matriculeUser, StringComparison.OrdinalIgnoreCase) == 0
                            select us).FirstOrDefault();

                if (user == null)
                {
                    return(null);
                }
                var selectedUser = new CustomMembershipUser(user);

                return(selectedUser);
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="matriculeUser"></param>
        /// <param name="mdpUser"></param>
        /// <returns></returns>
        public override bool ValidateUser(string matriculeUser, string mdpUser)
        {
            if (string.IsNullOrEmpty(matriculeUser) || string.IsNullOrEmpty(mdpUser))
            {
                return(false);
            }

            using (ChaabiDocHFEntities dbContext = new ChaabiDocHFEntities())
            {
                var user = (from us in dbContext.Utilisateurs
                            where string.Compare(matriculeUser, us.matriculeUser, StringComparison.OrdinalIgnoreCase) == 0 &&
                            string.Compare(mdpUser, us.mdpUser, StringComparison.OrdinalIgnoreCase) == 0 &&
                            us.isActiveUser == true
                            select us).FirstOrDefault();

                return((user != null) ? true : false);
            }
        }