2013-03-12 135 views
5

當前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

回答

1

它是安全

什麼是 「安全的」,爲什麼不這樣呢?

路由使用字符串,代碼不要緊,這些字符串來自何方,無論是硬編碼,資源文件,Web服務,文本文件或數據庫建。

只要你確保你有一些默認路由了用於顯示錯誤頁面當數據庫不可用時,我看不到(除了可能對首發命中的性能損失),爲什麼你不會這樣做。