Перезапись URL IIS по сравнению с маршрутизацией URL

Вы можете использовать фабрику для создания контекста входа. Затем вы можете издеваться над фабрикой и возвращать все, что хотите, для своего теста.

public class TestedClass {
  private final LoginContextFactory loginContextFactory;

  public TestedClass(final LoginContextFactory loginContextFactory) {
    this.loginContextFactory = loginContextFactory;
  }

  public LoginContext login(String user, String password) {
    LoginContext lc = loginContextFactory.createLoginContext();
  }
}

public interface LoginContextFactory {
  public LoginContext createLoginContext();
}
48
задан splattne 8 November 2008 в 18:59
поделиться

7 ответов

Существует большое сообщение здесь о различиях между двумя от члена команды IIS.

Один протест, которому я советовал бы, состоит в том, что для WebForms, необходимо быть осторожными при использовании Маршрутизации. Я записал демонстрационную реализацию того, как Вы использовали бы маршрутизация с WebForms, который обращается к этим проблемам и надо надеяться помогает ответить на Ваш вопрос.

25
ответ дан Haacked 7 November 2019 в 22:34
поделиться

Это - лучшая статья, которую я нашел об этой теме: Перезапись URL IIS и ASP.NET, направляющий Ruslan Yakushev.

URL IIS, Переписывая

, Когда клиент выполняет запрос к веб-серверу для конкретного URL, переписывающий URL компонент анализирует требуемый URL и изменяет его на различный другой URL на том же сервере. Переписывающий URL компонент работает очень рано в конвейере обработки запросов, поэтому в состоянии изменить требуемый URL, прежде чем веб-сервер примет решение о который обработчик использовать для обработки запроса.

IIS URL Rewriting

ASP.NET, Направляющий

, маршрутизация ASP.NET реализована как модуль управляемого кода, который включает конвейер обработки запросов IIS на этапе Кэша Твердости (событие PostResolveRequestCache) и на этапе Обработчика Карт (PostMapRequestHandler). маршрутизация ASP.NET настроена для выполнения за всеми запросами, выполненными к веб-приложению.

IIS URL Routing

Различия между перезаписью URL и маршрутизацией ASP.NET:

  1. перезапись URL используется для управления путями URL , прежде чем запрос будет обработан веб-сервером . Переписывающий URL модуль ничего не знает о том, какой обработчик в конечном счете обработает переписанный URL. Кроме того, фактический обработчик запросов не мог бы знать, что URL был переписан.
  2. маршрутизация ASP.NET привыкла к [1 122], отправляют запрос обработчику на основе требуемого пути URL . В противоположность перезаписи URL компонент маршрутизации знает об обработчиках и выбирает обработчик, который должен генерировать ответ для требуемого URL. Можно думать о ASP.NET, направляющем как усовершенствованный отображающий обработчик механизм.

В дополнение к этим концептуальным различиям, существуют некоторые функциональные различия между перезаписью URL IIS и маршрутизацией ASP.NET:

  1. модуль перезаписи URL IIS может использоваться с любым типом веб-приложения, которое включает ASP.NET, PHP, ASP и статические файлы. маршрутизация ASP.NET может использоваться только с.NET Основанные на платформе веб-приложения.
  2. модуль перезаписи URL IIS работает, тот же путь независимо от или интегрированный или классический конвейерный режим IIS используются для пула приложений. Для маршрутизации ASP.NET желательно использовать интегрированный конвейерный режим. маршрутизация ASP.NET может работать в классическом режиме, но в этом случае приложение URL должно включать расширения файла, или приложение должно быть настроено для использования "*" обработчик, отображающийся в IIS.
  3. модуль перезаписи URL может принять решения перезаписи на основе доменных имен, HTTP-заголовков и серверных переменных. По умолчанию, ASP.NET, направляющий работы только с путями URL и с заголовком Метода HTTP.
  4. В дополнение к перезаписи, модуль перезаписи URL может выполнить Перенаправление HTTP, выпустить пользовательские коды статусов и прервать запросы. маршрутизация ASP.NET не выполняет те задачи.
  5. модуль перезаписи URL не расширяем в своей текущей версии. маршрутизация ASP.NET полностью расширяема и настраиваема.
40
ответ дан quw 7 November 2019 в 22:34
поделиться

Вы хотите, чтобы отформатированные URL были фабрикой для порождения страниц?

или Вы хотите заставить .aspx уйти?

перезапись, для того, чтобы заставить .aspx уйти, или только убрать URL.

Маршрутизация, для рассмотрения запроса и определения, какой объект должен обработать его. Они звучат подобными, phil haack имеет несколько хороших статей о предмете.

в iis6, isapiRewrite, очень хорош

7
ответ дан DevelopingChris 7 November 2019 в 22:34
поделиться

Я недавно просто записал свою собственную систему перезаписи, чтобы заставить URL на моих сайтах выглядеть лучше. В основном Вы собираетесь должны записать свое собственное IHttpModule и добавить его к Вашему web.config для прерывания входящих запросов. Можно тогда использовать HttpContext. Текущий. RewritePath для изменения то, на что Вы указываете.

Вы также захотите настроить свой сайт к , используют aspnet_isapi для всего .

Вы обнаружите много небольших проблем по пути как попытка работать со страницами, которые используют "хвосты" на них (как для PageMethods), или соединение каналом элементов страницы и обратные передачи формы, но Вы пройдете через них.

, Если заинтересовано, я могу отправить ссылку на код, и можно проверить его. Я уже разработал много проблем, таким образом, можно прочитать его, когда Вы идете. Я уверен, что существует много других людей, которые сделали это также, которое могло бы быть хорошими ресурсами также.

4
ответ дан Hugoware 7 November 2019 в 22:34
поделиться

Можно хотеть проверить мой ответ к этому вопросу: ASP.NET - Создание Вашей собственной системы маршрутизации . Я включаю некоторые хорошие ссылки, чтобы помочь создать Вашу собственную систему маршрутизации или с использованием метода перезаписи URL или с новым механизмом маршрутизации, который можно использовать, который вышел из проекта MVC ASP.NET.

2
ответ дан Community 7 November 2019 в 22:34
поделиться

Динамический проект Данных, который доступен с.Net 3.5 SP1, показывает хороший пример внедрения маршрутизации URL.

0
ответ дан Norge 7 November 2019 в 22:34
поделиться

Для Перезаписи URL на IIS IIRF работает в IIS5, 6, 7. Свободный. Легкий. Быстро. Открытый исходный код. Поддержка регулярного выражения.

0
ответ дан Cheeso 7 November 2019 в 22:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: