如何在asp.net中实现动态URL重写

时间:2013-03-17 14:37:32

标签: c# asp.net url url-rewriting

我正在使用VS 2010. 我创建了一个网站,我想在其中重写网址。

我有我的所有文件,即admin和用户文件夹中的aspx文件。

在我的应用程序中,admin创建用户,然后如果用户在地址栏中键入www.domian.com\[username]\,那么这应该导致我的应用程序中的用户文件夹

我想要这种类型的网址重写。

www.domain.com\\[Dynamic user]\login.aspx

如果可以实现,请建议我。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

查看这些文章,了解如何使用UrlRoutingModule:

您可以使用System.Web.Routing命名空间中定义的内置路由来使用控制器,也可以构建自己的IRouteHandler : IHttpHandler实现类。

基本上,定义它们的第一个位置是Global.asax或派生System.Web.HttpApplication类,处理Application_Start事件。

void Application_Start(object sender, EventArgs e)
{
    // Code that runs on application startup
    RouteTable.Routes.MapPageRoute("routeName",
    "{controller}/{action}", "~/Store/View.aspx");
}

由于IRouteHandler正在包裹IHttpHandler.ProcessRequest,因此路由发生在Application_BeginRequest事件之后。

如果您不想使用System.Web.Routing命名空间,使用UrlRoutingModuleIRouteHandler,则IHttpHandler只有StaticFileHandler或{{1} (ASP.NET WebForm'aspx'IHttpHandler)。

至少你可以创建一个简单的ASP.NET WebHandler System.Web.Page文件(最简单的IHttpHandler)。

所以你说实施......

值得注意的是旧版.NET框架和IIS上的ASP.NET< 7 无法重写任何内容。阅读“IIS ASP.NET集成管道”。

也许你的问题的最佳答案可能是“没有建设性”,“重复”或只是说使用搜索,做 google 并说“asp.net url routing”计算器”。