【发布时间】:2013-02-28 05:24:55
【问题描述】:
当前的 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")));
}
问题
此时从数据库中提取路由是否安全?例如:
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 的普遍不熟悉。过去,我只将global.asax 用于极其简单的任务; DB 感觉我把它提升到了另一个层次。
【问题讨论】:
-
为什么不安全?换句话说,是什么促使您认为可能并提出这个问题?
-
+1 我也想知道!但另一方面:您还应该在哪里注册路线?
try..catch当然是个好主意。 -
@Yuck,好问题。请参阅其他信息。我要补充一点,最近的职位变动使我成为组织中唯一的开发人员。有时,很难没有人来提出想法。
标签: c# asp.net routing global-asax