您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

如何使用IIS API禁用IP访问

2024/3/31 12:34:45发布11次查看
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<workerprocess> getworkerprocesses()    {        return servermanager.workerprocesses;    }    public ienumerable<string> 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屏蔽。此方法会抛出异常,而且需要管理员权限才可执行。以上就是如何使用iis api禁用ip访问的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product