如何通过WEB方式,来控制iis的禁用IP名单

原创 2004年09月07日 10:47:00
如何通过WEB方式,来控制iis的禁用IP名单。

这个问题可以进一步划分为两个问题:
1、如何控制iis的IPDeny;
2、由于是WEB方式,默认的WEB帐户权限很低,不会有上面操作的权限,如何处理。
 
第一个问题:

微软的msdn中给出了三种方法:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/iis/setting_ip_security_using_system_directoryservices.asp
这里给出了两种。其实都是使用 System.DirectoryServices 类
后一种竟然有这样的要求:
This example requires Windows Server 2003 Service Pack 1, which contains fixes that allow System.DirectoryServices to enumerate list properties.
晕倒,当时就是没看到这条,这一种调试了很久才发现有这个限制。
Windows Server 2003 Service Pack 1 那要啥时候才能出来呀。等不及了。放弃这种方案。

另外一个在:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/iis/ref_prog_iaorefiipsecd.asp
代码是 VBScript 写的


其实有个更好的在:
http://www.thecodeproject.com/csharp/IISWMI.asp
这里其实是使用 System.DirectoryServices。同时通过使用 反射 来避免上面必须 win2003 sp1 才可以使用的尴尬。
具体代码请看那个网页,我就不详细说了。我就是采用的这个。


第二个问题:

当然,你可以给 WEB 的运行帐户非常高的权限来解决这个问题。
我们这里要说的不是这种不安全的,而是只给必要的权限。这就需要 身份模拟(Impersonation)了。

有关在ASP.NET应用程序中使用身份模拟的文章请看以下文章:
http://www.microsoft.com/China/Community/program/originalarticles/TechDoc/impersonation.mspx

或者你查 msdn 中 WindowsImpersonationContext 类的说明。
或是是 web.config 中 <identity impersonate="true" /> 这样一节的相关信息

至于如何新设一个帐户,这个帐户只有对iis的IPDeny有读写权限。
汗颜,我也不会。

我是用了一个更高权限的帐户。通过设置 Web.config 的 identity 节来实现的。
通过设置: impersonate="true"
这样,用户身份的认证交给IIS来进行。
当允许匿名登录时,IIS将一个匿名登录使用的标识(缺省情况下是IUSR_MACHINENAME)交给ASP.NET应用程序。
当不允许匿名登录时,IIS将认证过的身份标识传递给ASP.NET应用程序。ASP.NET的具体访问权限由该账号的权限决定。
这时候我使用不允许匿名登录,然后使用一个非常高权限的帐户登录,就可以操作了。

这方面的文章还可以参考:
http://www.microsoft.com/china/technet/security/guidance/secmod38.mspx

 

C# IIS站点限制特定的IP操作

参考别人的代码:using System;using System.DirectoryServices;using System.Reflection;//using mscorlib;namespa...
  • pengbincn
  • pengbincn
  • 2007-10-12 16:28:00
  • 848

IIS中限制访问IP设置方法

IIS中限制访问IP设置方法 对于一些重要的服务器,我们并不想让所有人都能访问,或者将一些总是攻击网站的用户屏蔽掉。这就需要添加限制访问风站的IP地址了。 1、我的电脑(右键)->管理->IIS-...
  • zhangwike
  • zhangwike
  • 2015-08-03 09:19:02
  • 2376

我的服务器开发之路-nginx禁止使用ip地址直接访问

nginx禁止使用ip地址直接访问
  • w_w_see
  • w_w_see
  • 2016-12-08 16:36:07
  • 4473

apache、iis6、ii7屏蔽限制ip访问(适用虚拟主机)

注:根据需求修改(8.8.4.4|8.8.8.)ip范围 Linux下 规则文件.htaccess(手工创建.htaccess文件到站点根目录) RewriteEngine On #Block i...
  • forest_fire
  • forest_fire
  • 2017-07-18 13:57:20
  • 278

nginx 禁止ip直接访问

添加server server { listen 80 default_server; server_name _; return 500; } 或者 serv...
  • u013372487
  • u013372487
  • 2018-02-26 18:29:16
  • 29

如何阻止某个IP访问我的电脑-用本地安全策略限制某个IP段

方法一:通过windows自带的安全策略限制 打开本地安全设置,点“IP安全策略,在本地机器”——>创建IP安全策略---->下一步---->名称随便写,如输入阻止,然后一直点下一步,出现提示点是,...
  • saga_gallon
  • saga_gallon
  • 2014-06-17 17:22:40
  • 3496

IIS安装教程,IIS配置,及解决80端口被屏蔽和动态IP甚至无公网IP问题

IIS,IIS配置,IIS安装教程,
  • iiroj
  • iiroj
  • 2014-07-16 21:40:27
  • 1031

IIS安全配置精华

       1.如何让asp脚本以system权限运行?   修改你asp脚本所对应的虚拟目录,把"应用程序保护"修改为"低"....   2.如何防止asp木马?   基于FileSystemOb...
  • henry365
  • henry365
  • 2005-10-27 23:38:00
  • 659

如何通过设定禁止访问某些特定网站

Hosts文件就可帮我们实现这一设想。以Win98系统为例,Hosts文件位于“C:/Windows”目录下(XP在C:/WINDOWS/system32/drivers/etc),它可以看成本机的一...
  • zyx_hawk
  • zyx_hawk
  • 2007-07-19 11:30:00
  • 2751
收藏助手
不良信息举报
您举报文章:如何通过WEB方式,来控制iis的禁用IP名单
举报原因:
原因补充:

(最多只允许输入30个字)