public static void Parse(String BindStr, IISBindingHandler callBack) { String[] bindings = BindStr.Split(new String[] { ";" }, StringSplitOptions.RemoveEmptyEntries); foreach (String singleBind in bindings) { String[] bindParams = singleBind.Split(new String[] { ":" }, StringSplitOptions.None); if (bindParams.Length < 4) { throw new Exception(String.Format("Invalid binding string specified {0}, must be in http::80:www.abcdefg.com:CertStoreName\\a03083aabcd6bdfec92214df7e885c9e1e1a864d form", singleBind)); } IISBinding cb = new IISBinding() { Protocol = bindParams[0], IP = bindParams[1], Port = bindParams[2], Host = bindParams[3] }; //If a cert was specified then set that up as well if (bindParams.Length >= 5) { String[] CertStoreCertHash = bindParams[4].Split(new String[] { "\\" }, StringSplitOptions.None); if (CertStoreCertHash.Length >= 2) { cb.CertificateStore = CertStoreCertHash[0]; cb.CertificateHash = CertStoreCertHash[1]; } else { cb.CertificateHash = CertStoreCertHash[0]; } } callBack(cb); } }
public override IISBinding FindBinding(IISBinding iisBinding) { Binding binding = site.Bindings.FirstOrDefault <Binding>(t => t.BindingInformation.Equals(iisBinding.SMBindString, StringComparison.CurrentCultureIgnoreCase)); if (binding != null) { IISBinding bnd = new IISBinding() { CertificateHash = (binding.CertificateHash == null) ? "" : SSLCertificates.ByteArrayToHexString(binding.CertificateHash), CertificateStore = binding.CertificateStoreName, Host = iisBinding.Host, IP = iisBinding.IP, Protocol = iisBinding.Protocol, Port = iisBinding.Port }; return(bnd); } else { return(null); } }
public override IISBinding FindBinding(IISBinding iisBinding) { // Not developed yet. throw new NotImplementedException(); }
public abstract IISBinding FindBinding(IISBinding iisBinding);