Как мне заставить корень сайта возвращать правильную страницу с сопоставлением подстановочных знаков ASP.NET MVC + WebForms + ISS 6?

В настоящее время я конвертирую веб-приложение из веб-форм в ASP.NET MVC. Проект был преобразован, и IIS 6 настроен с сопоставлением с подстановочными знаками. Я также сделал одно представление / контроллер MVC, которое отлично работает. Но есть одна проблема. При доступе к корню сайта механизм маршрутизации срабатывает и перенаправляет пользователя на контроллер по умолчанию вместо настройки страницы по умолчанию в IIS. Есть ли способ заставить IIS использовать страницу по умолчанию до того, как сработает механизм маршрутизации?

Если не...

Я попытался, чтобы контроллер по умолчанию просто перенаправлял пользователя на страницу по умолчанию (LoginPage.aspx). Это работает, за исключением того, что авторизация web.config, похоже, считает, что путь не авторизован, поэтому перенаправляет на путь, который выглядит как http://dev01/SampleWebApp/LoginPage.aspx?ReturnUrl=%2fSampleWebApp

Если перейти к контроллеру по умолчанию напрямую (http: // dev01 / SampleWebApp / default /), пользователь будет перенаправлен на страницу входа с правильным путем.

Итак, есть ли способ получить корень сайта, пропустив авторизацию web.config и перенаправив на страницу входа без ReturnUrl?

Любая помощь приветствуется.

Спасибо, Даррен


person Darren    schedule 23.09.2010    source источник


Ответы (2)


в верхней части конфигурации маршрутов в global.asax:

routes.IgnoreRoute("LoginPage.aspx");

or:

routes.IgnoreRoute("/");

не пробовал, но один из этих двух вариантов должен работать.

person eglasius    schedule 23.09.2010
comment
У меня уже игнорируются страницы .aspx. Переход на LoginPage.aspx работает нормально, но не работает должным образом корень сайта: dev01 / SampleWebApp Я пытался игнорировать / но asp.net дает мне эту ошибку: URL-адрес маршрута не может начинаться с символа '/' или '~' и не может содержать '?' персонаж. - person Darren; 24.09.2010
comment
это все, что у меня есть ... на самом деле, чтобы переопределить авторизацию, вы можете применить ее специально к странице входа в систему, аналогично stackoverflow.com/questions/3026293/ - person eglasius; 24.09.2010

Итак, решение моей проблемы заключалось в использовании сопоставлений URL-адресов в web.config под тегом system.web:

<urlMappings enabled="true">
    <add url="~/" mappedUrl="~/LoginPage.aspx"/>
    <add url="~" mappedUrl="~/LoginPage.aspx"/>
</urlMappings>

«~ /» перенаправит путь http://dev01/SampleWebApp/.

«~» перенаправит путь http://dev01/SampleWebApp.

person Darren    schedule 29.09.2010