2012-04-03 3 views
3

Я работаю над приложением ASP.NET для веб-форм, использующим проверку подлинности по формам. Проблема в том, что он игнорирует мой маршрут и перенаправляет на страницу login.aspx.Маршрутизация в веб-формах ASP.NET с проверкой подлинности форм

У меня есть следующие настройки маршрута:

routes.MapPageRoute("/locale", "{locale}", "~/shorturl/transfer.aspx", 
      false, 
      new RouteValueDictionary { { "locale", "[a-z]{2}" } }); 

Если я использую следующий URL: http://server/minneapolis он идет на страницу входа в систему. Если я добавлю следующее в Web.Config, то он «работает» и переходит на страницу transfer.aspx.

<location path="minneapolis"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
</location> 

Я не хочу, чтобы добавить все локалей в web.config, кажется, поражение цели.

можно также изменить маршрут к (заметьте, я добавил "/ LOC /"):

routes.MapPageRoute("/locale", "/loc/{locale}", "~/shorturl/transfer.aspx", 
      false, 
      new RouteValueDictionary { { "locale", "[a-z]{2}" } }); 

После того, что я могу изменить путь Web.Config расположение к LOC (местоположение путь = "LOC") и это работает, но я бы предпочел иметь его в корне. Есть какой-либо способ сделать это?

Это .NET v4, и я должен поддерживать IIS 7 и IIS 7.5

+0

Является ли ваш трафик http: // server/minneapolis защищенным ... Я имею в виду, должен ли пользователь проходить аутентификацию, чтобы добраться до http: // server/minneapolis ...? если возможно, вы можете опубликовать код своей страницы? – NiK

+0

Я не хочу, чтобы это было безопасно, но в зависимости от того, как оно настроено, оно или нет. На какой странице вы хотите увидеть код? – Dean

ответ

0

Я не думаю, что есть способ сделать это. Авторизация основана на URL, а модуль авторизации, по-видимому, проверяет исходный код , а не URL-адрес получателя, когда он определяет способ авторизации запроса.

Как и в случае с 6 месяцами, точно так же, как и в одном из моих проектов. Я закончил с предлагаемым вами решением - мои запрошенные маршруты были помещены в «подпапку», и я создал локальный web.config с authorization allow users=*.

Если есть способ обойти это, я также хотел бы услышать, как это должно быть сделано.

Смежные вопросы