/// <summary>
        /// Update method implmentation
        /// </summary>
        public override void Load(PSHost host)
        {
            ManagementService.Initialize(host, true);
            MFAConfig    cfg  = ManagementService.Config;
            MailProvider mail = cfg.MailProvider;

            IsDirty                     = cfg.IsDirty;
            Enabled                     = mail.Enabled;
            EnrollWizard                = mail.EnrollWizard;
            ForceWizard                 = mail.ForceWizard;
            From                        = mail.From;
            UserName                    = mail.UserName;
            Password                    = mail.Password;
            Host                        = mail.Host;
            Port                        = mail.Port;
            UseSSL                      = mail.UseSSL;
            Company                     = mail.Company;
            PinRequired                 = mail.PinRequired;
            Anonymous                   = mail.Anonymous;
            DeliveryNotifications       = mail.DeliveryNotifications;
            FullQualifiedImplementation = mail.FullQualifiedImplementation;
            Parameters                  = mail.Parameters.Data;

            AllowedDomains.Clear();
            foreach (string itm in mail.AllowedDomains)
            {
                AllowedDomains.AddDomain(itm);
            }

            BlockedDomains.Clear();
            foreach (string itm in mail.BlockedDomains)
            {
                BlockedDomains.AddDomain(itm);
            }

            MailOTPContent.Clear();
            foreach (SendMailFileName itm in mail.MailOTPContent)
            {
                MailOTPContent.Add((FlatConfigMailFileName)itm);
            }
            MailAdminContent.Clear();
            foreach (SendMailFileName itm in mail.MailAdminContent)
            {
                MailAdminContent.Add((FlatConfigMailFileName)itm);
            }
            MailKeyContent.Clear();
            foreach (SendMailFileName itm in mail.MailKeyContent)
            {
                MailKeyContent.Add((FlatConfigMailFileName)itm);
            }
            MailNotifications.Clear();
            foreach (SendMailFileName itm in mail.MailNotifications)
            {
                MailNotifications.Add((FlatConfigMailFileName)itm);
            }
        }
        /// <summary>
        /// 判断请求来源是否被允许
        /// </summary>
        public bool IsRefererAllowed(string referer, string currentHost)
        {
            if (string.IsNullOrEmpty(referer))
            {
                return(true);
            }
            var refererUri = new Uri(referer);
            var self       = AllowedDomains.FirstOrDefault(n => n == ".");

            if (self != null)
            {
                AllowedDomains.RemoveAll(n => n == ".");
                AllowedDomains.Insert(0, currentHost);
            }
            return(AllowedDomains.Exists(n => n == refererUri.Host));
        }
 public IActionResult Post([FromBody] AllowedDomains AllowedDomains)
 {
     try
     {
         if (!ModelState.IsValid)
         {
             return(BadRequest());
         }
         return(Ok(_unitOfWork.AllowedDomains.Insert(AllowedDomains)));
     }
     catch (System.Data.SqlClient.SqlException sqlex)
     {
         if (sqlex.Number.Equals(2601))
         {
             return(StatusCode(500, "No se puede ingresar el mismo dominio mas de una vez"));
         }
         return(StatusCode(500, "Internal server error: " + sqlex.Message));
     }
     catch (Exception ex)
     {
         return(StatusCode(500, "Internal server error: " + ex.Message));
     }
 }