Как удалить ненужную информацию из удобного для пользователя URL-адреса, прежде чем она попадет в действие контроллера

Мы пытаемся использовать настраиваемые маршруты в приложении ASP.NET MVC для создания этого URL: 'http://example.com / Person / undefinedinfo-42 '. «Ненужная информация» - это имя идентификатора, который сделает URL-адрес доступным для взлома. Ниже приведен код нашей карты маршрутов. Это работает, но действие моего контроллера заканчивается "undecesaryinfo-42" в параметре id. Можно ли убрать "ненужную информацию-" прежде чем он достигнет действия контроллера?

routes.MapRoute("person_id", "person/{id}",
    new { controller = "Customer", action = "Details" },
    new { id = @"unnecessaryinfo-\d" });

Изменить:

Вот наш последний код:

routes.MapRoute("person_id", "person/{unnecessaryinfo}-{id}",
    new { controller = "Customer", action = "Details" },
    new { id = @"[\d]{1,6}" });

В главе о маршрутизации из ASP.NET MVC 2 в действии (страница 234) обсуждается отказ от использования идентификаторы базы данных, когда это возможно, но если вы должны их использовать, добавление дополнительной информации, чтобы сделать URL-адрес читаемым. Это то, что мы пытаемся (безуспешно) сделать. Идентификатор базы данных в настоящее время составляет от 1 до 6 цифр (и может со временем увеличиваться).

5
задан rkgallegos 21 October 2010 в 21:20
поделиться