ASP.NET: URL Rewriting в .NET 4

Тема преобразования ссылок ранее уже затрагивалась. Предложенный вариант работал (и работает) на любых версиях платформы .NET. Однако .NET 4 имеет, наконец, встроенные средства преобразования URL из www.site.ru/library.aspx?id=76513 в www.site.ru/library/interest_article.
Оставив лирику, сразу перейдем к делу.

Для реализации URL Rewrite платформа .NET 4 имеет класс System.Web.Routing. Для его использования в корне проекта сайта необходимо создать файл global.asax (если он отсутствует).
Типовой вид файла после создания будет иметь следующий вид:
<%@ Application Language="C#" %>  
<script runat="server">
    void Application_Start(object sender, EventArgs e) 
    {
//  Code that runs on application start
    }
 
    void Application_End(object sender, EventArgs e) 
    {
        //  Code that runs on application shutdown
 
    }
        
    void Application_Error(object sender, EventArgs e) 
    { 
        // Code that runs when an unhandled error occurs
 
    }
 
    void Session_Start(object sender, EventArgs e) 
    {
        // Code that runs when a new session is started
 
    }
 
    void Session_End(object sender, EventArgs e) 
    {
        // Code that runs when a session ends. 
        // Note: The Session_End event is raised only when the sessionstate mode
        // is set to InProc in the Web.config file. If session mode is set to StateServer 
        // or SQLServer, the event is not raised.
 
    }
       
</script>

После создания файла в обработчик Application_Start необходимо вставить следующий код:
System.Web.Routing.RouteTable.Routes.MapPageRoute("sampleRoute1", "page", "~/page.aspx"); 

Приведенный код будет реализовывать перенаправление с адреса /page на /page.aspx
Для использования параметров в адресе можно использовать следующую конструкцию:
System.Web.Routing.RouteTable.Routes.MapPageRoute("sampleRoute2", "page/{par1}/{par2}", "~/page.aspx"); 

В коде страницы работать с полученными параметрами можно следующим образом:
object par1 = Page.RouteData.Values["par1"]; 

Вот и все.

Глубже ознакомится с классом Routing и особенностями global.asax можно и нужно в MSDN.

Стоит отметить, что указанный метод преобразования ссылок сайта является далеко не единственым для связки IIS7 + .NET 4.
Ссылки:
— Маршрутизация ASP.NET
— Что такое global.asax
 

Статьи на схожую тематику:

ASP.NET MVC: IIS6
ASP.NET MVC: работа с Membership provider
ASP.NET MVC: страница авторизации по умолчанию
Visual Studio 2010: Master Product Key и правила его формирования
ASP.NET: Google Maps, часть I