开发者

Asp.net MVC Routing - Preventing a route to an XML file with a constraint

I'm attempting to find a way to preventing a user from accessing a specific xml file. I've tried doing...

routes.MapRoute(
     "SiteMap",
     "SiteMap/siteMap.xml",
     new { },
     new { isLocal = new LocalHostRouteConstraint() });

Where the LocalHostRouteConstraint() is...

public class LocalHostRouteConstraint : IRouteConstraint
{
    public bool Match(System.Web.HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
    {
        return !httpContext.Request.IsLocal;
    }
}

This is the implementation on this page...

http://www.asp.net/mvc/tutorials/creating-a-custom-route-constraint-cs

But routes are still allowed to access the xml!

Is there another way to prevent this?

EDIT Forgot to mention to ignore the ! In the LocalHostRouteConstrsint class. Was doing that for testin开发者_如何学Pythong for it to work.


Does the restriction have to be in the MVC routes?

If not, you can put the following right before the </configuration> closing tag in your web.config:

<location path="SiteMap/siteMap.xml">
     <system.web>
        <authorization>
           <deny users="*"/>
        </authorization>
     </system.web>
 </location>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜