2009-06-15 36 views
2

我们在IIS6上使用MVC。我们的网站目前正在开放,但我们需要限制访问该网站的注册部分,但允许那些可以注册(即从我们的办公室内)注册的用户仍然可以完全登录并使用该网站。使用IIS6的ASP.NET MVC:阻止访问单个视图(注册)

所以里面的办公室可以访问注册和所有其他网站。 外部办公室不能访问注册,但可以访问所有其他网站。

最初,我们在views \ accounts文件夹的register.aspx文件中放置了我们办公室IP的文件限制。我们非常肯定这是有效的,但今天,我们发现它不是!考虑这件事实际上是有道理的!

这是可能的吗?

我们需要将views \ accounts文件夹中的其他aspx页面用作视图,同时只阻止注册视图。

希望这是有道理的!在ASP.NET MVC定义

尼尔

回答

2

URL是可配置的,而不是基于地方查看页面所在的文件夹或文件。 这意味着您无法使用IIS为此视图页面配置访问权限。 您可以过滤对控制器的访问(并间接查看由视图页调用的视图页面)。这是通过Action Filtering完成的。关于如何创建自定义操作过滤器see this page

所以,有可能根据IP地址限制访问某些页面。

+0

怎么样?你有没有任何例子,我想限制几个基于IP地址的查看页面 – Miral 2010-03-02 17:27:39

1

我以前遇到过这种情况,但问题是通过我们编写应用程序的方式解决的。

每当我们有一个“显示某些信息”和“管理数据的方式”的应用程序时,我们总是在业务逻辑的顶部创建单独的UI项目。这不仅仅是为了提高可维护性,它还意味着公有位可以部署在公共网站上,而管理位可以通过网络访问 - 所以根本没有外部访问。

在您的示例中,提取出这两个逻辑元素意味着您可以在IIS中部署两个具有不同访问规则的独立Web项目。

另一种方法是检查受限页面的执行代码中的IP地址 - IP地址可能被欺骗,因此它不是一个完全安全的解决方案。