开发者

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

开发者 https://www.devze.com 2023-02-09 03:06 出处:网络
I\'m attempting to find a way to preventing a user from accessing a specific xml file.I\'ve tried doing...

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

精彩评论

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