【发布时间】:2011-06-23 17:57:19
【问题描述】:
我正在尝试找到一种方法来阻止用户访问特定的 xml 文件。我试过做...
routes.MapRoute(
"SiteMap",
"SiteMap/siteMap.xml",
new { },
new { isLocal = new LocalHostRouteConstraint() });
LocalHostRouteConstraint() 在哪里...
public class LocalHostRouteConstraint : IRouteConstraint
{
public bool Match(System.Web.HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
return !httpContext.Request.IsLocal;
}
}
这是此页面上的实现...
http://www.asp.net/mvc/tutorials/creating-a-custom-route-constraint-cs
但是仍然允许路由访问xml!
还有其他方法可以防止这种情况发生吗?
编辑 忘了提忽略了!在 LocalHostRouteConstrsint 类中。这样做是为了测试它的工作原理。
【问题讨论】:
-
你想完成什么?你为什么不直接使用 routes.IgnoreRoute("SiteMap/siteMap.xml") ?
-
你也可以试试
routes.IgnoreRoute("{*sitemap}", new { sitemap = @"(.*/)?siteMap.xml(/.*)?" }); -
@frennky 我试过了,但用户仍然可以直接在地址栏中输入路径并获取 .xml 文件。我正在寻找一种方法来阻止用户导航到该文件。
-
@Aivan 我会在早上试试,然后告诉你进展如何。
标签: asp.net asp.net-mvc routing asp.net-mvc-3