我有一个客户打我们的时候有一个不寻常的要求,他们想限制用户通过IP地址访问,这样用户1只能从IP地址A,B,C访问系统,用户2可以访问地址AD和F。
我不知道是否有可能通过IP地址“每个用户名”的组合来限制身份validation
没有内置的机制来实现这一点。 至less不是直接以你问的方式。
但是,你可以相当接近。
首先,你如何定义一个“用户”? 他们是Active Directory用户,Web服务器是否是同一个域名的成员? 如果是这样,那么你可以在他的网站禁用匿名身份validation,并切换到集成Windows身份validation。 您通过在NTFS中设置客户安全权限来实现访问控制 – 您可以创build一个AD组,用于控制对网站的访问,授予对Web根文件夹的读取/执行权限,然后将所有AD用户添加到组中。 当他们连接到该网站时,他们将被AD自动authentication并被允许查看该网站。
然后,您可以使用IIS中的内置域和IP限制 – 将IP限制的默认规则设置为拒绝全部,然后添加每个授权的IP地址。
您无法实现的部分是任何用户都可以连接到列表中的任何IP,您无法进一步限制。 如果你想做得比这更好,你需要自己编写代码,直接进入asp.net应用程序的代码隐藏(web表单),模型(MVC)或global.asax(如Greg提到的)。