从数据库记录创建路由

问题描述:

当前ASAX代码(简化):从数据库记录创建路由

void Application_Start(object sender, EventArgs e) 
{   
    // Enable routing 
    RegisterRoutes(RouteTable.Routes); 
} 

void RegisterRoutes(RouteCollection routes) 
{ 
    routes.Add("ContactUsRoute", 
       new Route("contact-us", 
       new PageRouteHandler("~/contactus.aspx"))); 
} 

问题

它是安全的,在这一点上拉从DB路线?例如:

这个问题是脱胎于的认识不足有关路由以及与global.asax一般不熟悉

void RegisterRoutes(RouteCollection routes) 
{ 
    routes.Add("ContactUsRoute", 
       new Route("contact-us", 
       new PageRouteHandler("~/contactus.aspx"))); 

    // BusinessLogic.GetPageRoutes() returns a List<Route> 
    var dbRoutes = BusinessLogic.GetPageRoutes(); 

    foreach (Route route in dbRoutes) 
    { 
     routes.Add(route); 
    } 
} 

其他信息。在过去,我只用global.asax进行极其简单的任务; DB 感觉就像我把它带到另一个层次。

+1

它为什么会是不安全的?换句话说,是什么促使你认为它可能会问这个问题? – Yuck 2013-03-12 16:03:14

+0

+1我也想知道!但另一方面:你应该在哪里注册路线?一个'try..catch'当然是一个好主意。 – 2013-03-12 16:04:44

+1

@Yuck,很好的问题。查看更多信息。我想补充一点,最近的职位变动使我成为该组织中唯一的开发人员。有时候,不可能有人将观点反弹出来。 – 2013-03-12 16:09:16

它是安全

什么是 “安全的”,为什么不这样呢?

路由使用字符串,代码不要紧,这些字符串来自何方,无论是硬编码,资源文件,Web服务,文本文件或数据库建。

只要你确保你有一些默认路由了用于显示错误页面当数据库不可用时,我看不到(除了可能对首发命中的性能损失),为什么你不会这样做。