限制直接路径

时间:2015-12-17 04:51:36

标签: asp.net vb.net

我在VS 2015中有一个项目。有一个名为home-program.aspx的页面。

这是我为该页面设置的路线:

            Dim sDestinationRegExp As String = "^(world|land|line|run|club)${2,}"

            routes.MapPageRoute("landing", "destinations/{destination}", "~/home-program.aspx",
                                        True,
                                        New RouteValueDictionary(New With
                                            {.destination = "world"}),
                                        New RouteValueDictionary(New With
                                            {.destination = sDestinationRegExp}))

现在,路线有效。然而。用户仍然可以使用/ home-program或/home-program.aspx访问该页面。有没有办法阻止他们使用这些网址访问这些网页,而是使用映射的路由?

1 个答案:

答案 0 :(得分:0)

我怀疑你可以在路线映射的尾端添加一个“全能”路线,将所有东西映射到403或404页面(无论你认为最好)。

This answer显示了如何创建全能路径映射。确保它位于地图的末尾 - 您添加的最后一件事。

这应该可以防止其他管道模块尝试处理URL。如果您的路由映射与URL不匹配,则默认情况下将调用另一个IIS模块(来自ASP.NET)。这就是处理/home-program.aspx请求的方式。如果使用路由映射条目处理它,则默认模块不应干扰。