private static IEnumerable <Binding> GetBindings(Microsoft.Web.Administration.Site site) { var allowedProtocols = new[] { "http", "https" }; var certificates = GetCertificates(); foreach (var binding in site.Bindings.Where(x => allowedProtocols.Contains(x.Protocol))) { var servantBinding = new Binding(); if (binding.Protocol == "https") { if (binding.CertificateHash == null) { continue; } var certificate = certificates.SingleOrDefault(cert => cert.Hash.SequenceEqual(binding.CertificateHash)); if (certificate != null) { servantBinding.CertificateName = certificate.Name; servantBinding.CertificateThumbprint = certificate.Thumbprint; } else { continue; } } servantBinding.Protocol = (Protocol)Enum.Parse(typeof(Protocol), binding.Protocol); servantBinding.Hostname = binding.Host; servantBinding.Port = binding.EndPoint.Port; var endPointAddress = binding.EndPoint.Address.ToString(); servantBinding.IpAddress = endPointAddress == "0.0.0.0" ? "*" : endPointAddress; yield return(servantBinding); } }
private static IEnumerable<Binding> GetBindings(Microsoft.Web.Administration.Site site) { var allowedProtocols = new[] { "http", "https" }; var certificates = GetCertificates(); foreach (var binding in site.Bindings.Where(x => allowedProtocols.Contains(x.Protocol))) { var servantBinding = new Binding(); if (binding.Protocol == "https") { if(binding.CertificateHash == null) continue; var certificate = certificates.SingleOrDefault(cert => cert.Hash.SequenceEqual(binding.CertificateHash)); if (certificate != null) { servantBinding.CertificateName = certificate.Name; servantBinding.CertificateThumbprint = certificate.Thumbprint; } else continue; } servantBinding.Protocol = (Protocol) Enum.Parse(typeof(Protocol), binding.Protocol); servantBinding.Hostname = binding.Host; servantBinding.Port = binding.EndPoint.Port; var endPointAddress = binding.EndPoint.Address.ToString(); servantBinding.IpAddress = endPointAddress == "0.0.0.0" ? "*" : endPointAddress; yield return servantBinding; } }