IIS安装栏目介绍如何使用IIS API禁用IP访问

免费推荐:IIS安装
这个类是基于Microsoft.Web.Administration写的一个简单封装:
PS:Microsoft.Web.Administration可通过Nuget搜索安装。
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(); } }
使用方法:
var iisAdministration = new IISAdministration(); iisAdministration.BlockIP("", "192.0.0.1");
注意:
BlockIP第一个参数为站点名,如果空字符串,则直接添加到IIS根路径下的IP屏蔽。Atas ialah kandungan terperinci 如何使用IIS API禁用IP访问. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Bagaimana untuk menyelesaikan iis tidak boleh bermula
Dapatkan kaedah pemegang tingkap
IIS penyelesaian ralat tidak dijangka 0x8ffe2740
Perbezaan antara api rehat dan api
Apakah yang perlu saya lakukan jika iis tidak boleh bermula?
Apa yang berlaku apabila phpmyadmin tidak dapat mengaksesnya?
ASUS x402c
Bagaimana untuk mencari nilai maksimum dan minimum elemen tatasusunan dalam Java