使用ip地址限制对mvc控制器的访问

时间:2012-04-18 11:54:55

标签: asp.net-mvc-3

我正在关注解决方案 which is described here

mvc3中的控制器使用自定义的FilterIP属性进行修饰

 //Admin/Device/Edit/1
    [FilterIP(
            ConfigurationKeyAllowedSingleIPs = "AllowedAdminSingleIPs",
            ConfigurationKeyAllowedMaskedIPs = "AllowedAdminMaskedIPs",
            ConfigurationKeyDeniedSingleIPs = "DeniedAdminSingleIPs",
            ConfigurationKeyDeniedMaskedIPs = "DeniedAdminMaskedIPs"
    )]
    public ActionResult Edit(int Id).... ommiting

在Web.config中我在appSettings

中有这些值
 <appSettings>
  <add key="AllowedAdminSingleIPs" value="89.111.212.141"/>
  <add key="AllowedAdminMaskedIPs" value="10.2.0.0;255.255.0.0"/>
  <add key="DeniedAdminSingleIPs" value=""/>
  <add key="DeniedAdminMaskedIPs" value=""/>
 </appSettings>

现在,我正在使用http://www.whatismyip.com/ 发现我当前的ip(因为我从isp获得了动态ip)。 据我所知,这应该在我内部使用ip后工作   。 89.111.212.141是我的isp动态ip。但它不起作用。

有什么问题? 在重新启动装饰的控制器操作时,我经常被重定向到登录状态。 简而言之,当使用localhost作为AllowedAdminSingleIPs时,它正在运行。

1 个答案:

答案 0 :(得分:3)

如果您已在本地托管您的应用程序(VS内置Web服务器)并在本地访问它,则httpContext.Request.UserHostAddress返回的IP很可能是127.0.0.1。尝试通过放置断点来调试代码,以查看发生了什么。