我找到了解决这个问题的方法,这对我来说很简单,但在互联网上没有成功。
在我为测试做的示例项目中:
我的控制器NotAuthorized
带有public ActionResult Index() { return View(); }
Index
视图仅包含文字This page need to be only available in local
。
所以,我的问题是,我希望访问NotAuthorized/Index
的唯一方法是来自IIS本身,任何来自LAN或WAN的人都需要获得403错误。
我认为web.config可以完成这项工作,但它是否安全?以及如何实施它?
这是一个大项目,我需要阻止来自互联网的API,因为只有应用程序需要使用它。 在最终项目中,应用程序使用本地地址,如“127.0.0.1/xxx”。
对不起我的英语,而不是我的语言。
编辑:(关注greatbear302解决方案) 使用WebDeploy(我需要的)测试已发布的应用程序。
网站绑定是:
在IIS上,我点击我的网站,并在Views目录中,在我的'NotAuthorized'目录中,其中包含我不希望用户可以访问的页面。 在IP地址和域限制上,我设置了All deny和192.168.0.5(IIS)授权。
运行测试:
192.168.0.5:9999/NotAuthorized
:我看到了该页面。testmvc/NotAuthorized
:我看到了该页面。我不知道下一步该做什么。
答案 0 :(得分:0)
在IIS中
答案 1 :(得分:0)
在IIS上没有任何成功,我在应用程序上进行了基本的IP过滤。
我的IIS在192.168.0.5上执行应用程序,所以这里是我的代码:
public ActionResult Index() {
ViewBag.UserIP = Request.UserHostAddress;
if (Request.UserHostAddress != "192.168.0.5")
throw new HttpException((int)System.Net.HttpStatusCode.Forbidden, "Accès non autorisé");
return View();
}
它完成了这项工作。如果我能为我的问题找到更好的解决方案,我将来会看到。