【问题标题】:Can we use <location> tag in web.config to refer to a controller in an MVC application我们可以在 web.config 中使用 <location> 标记来引用 MVC 应用程序中的控制器吗
【发布时间】:2025-11-25 09:45:01
【问题描述】:

我们要求将对应用程序中某些 Web 端点的访问限制为一组特定的 IP 地址。

在传统的 Web 表单应用程序中,我们成功地在 web.config 中使用了 和 标签的组合来限制对我们的处理程序 (ashx) 的访问。这种相同的方法是否适用于端点是控制器/动作的 ASP.NET MVC 应用程序。我们在位置的“路径”属性中仅指定控制器名称的第一次尝试没有奏效。

另一种方法是在该控制器上使用 MVC Authorize/Filter 属性来获得正确的限制,但我们更愿意完全从我们的 web.config 中控制它,而不是在代码中。

【问题讨论】:

    标签: asp.net-mvc-2 web-applications .net-3.5 web-config


    【解决方案1】:

    同样的方法是否适用于端点是控制器/动作的 ASP.NET MVC 应用程序。

    也许是,也许不是。在 MVC 应用程序中使用此标记被认为是一种不好的做法。我建议实施自定义 [Authorize] 过滤器。当然,您仍然可以从web.config 外部化并读取授权/未授权 IP 地址列表,以简化管理并避免在应用程序发生更改时重新编译。

    【讨论】:

    • 谢谢。我们可能会坚持使用 Authorize 属性。
    最近更新 更多