Installation IISLa colonne présente comment utiliser l'API IIS pour désactiver l'accès IP

Recommandations gratuites :Installation IIS
Cette classe est un package simple basé surMicrosoft.Web.Administration:
PS :Microsoft.Web.Administrationpeut être recherché et installé viaNuget.
public class IISAdministration { private readonly ServerManager serverManager; public IISAdministration() { serverManager = new ServerManager(); } public IEnumerable GetWorkerProcesses() { return serverManager.WorkerProcesses; } public IEnumerable GetSiteNames() { foreach (var item in GetWorkerProcesses()) { yield return item.AppPoolName; } } public ConfigurationElementCollection GetIpSecurityCollection(string site) { return GetConfigurationElementCollection("system.webServer/security/ipSecurity", site); } public ConfigurationElementCollection GetConfigurationElementCollection(string sectionName, string site = "") { var config = serverManager.GetApplicationHostConfiguration(); ConfigurationSection section; if (string.IsNullOrWhiteSpace(site)) { section = config.GetSection(sectionName); } else { section = config.GetSection(sectionName, site); } return section.GetCollection(); } public void CreateElement(ConfigurationElementCollection section, ConfigurationElement element) { section.Add(element); serverManager.CommitChanges(); } public void RemoveElement(ConfigurationElementCollection section, ConfigurationElement element) { section.Remove(element); serverManager.CommitChanges(); } public bool HasBlocked(string siteName, string ip) { var ipSecurityCollection = this.GetIpSecurityCollection(siteName); for (int i = 0; i < ipSecurityCollection.Count; i++) { var element = ipSecurityCollection[i]; if ((string)element["ipAddress"] == ip) { return true; } } return false; } public void FreeIP(string siteName, string ip) { if (!HasBlocked(siteName, ip)) { return; } var ipSecurityCollection = this.GetIpSecurityCollection(siteName); for (int i = 0; i < ipSecurityCollection.Count; i++) { var element = ipSecurityCollection[i]; if ((string)element["ipAddress"] == ip) { this.RemoveElement(ipSecurityCollection, element); break; } } } public void BlockIP(string siteName, string ip) { if (HasBlocked(siteName, ip)) { return; } var ipSecurityCollection = this.GetIpSecurityCollection(siteName); var element = ipSecurityCollection.CreateElement("add"); element["ipAddress"] = ip; element["allowed"] = false; ipSecurityCollection.Add(element); serverManager.CommitChanges(); } }
Utilisation :
var iisAdministration = new IISAdministration(); iisAdministration.BlockIP("", "192.0.0.1");
Remarque :
BlockIPLe premier paramètre est le nom du site. S'il s'agit d'une chaîne vide, ajoutez-la directement à <.> Blocage IP sous le chemin racine.IIS
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Comment résoudre le problème car il ne peut pas démarrer
Obtenir la méthode du handle de fenêtre
Solution d'erreur inattendue IIS 0x8ffe2740
La différence entre l'API de repos et l'API
Que dois-je faire si II ne peut pas démarrer ?
Comment ouvrir le fichier ofd
Utilisation de Instanceof en Java
Téléchargement de l'application Yiou Exchange