Вопрос о федеративной аутентификации с использованием Windows Identity Foundation

Я разрабатываю веб-сайт Asp.Net MVC с использованием Windows Identity Foundation и веб-сайта STS для аутентификации. он работает нормально, поскольку всякий раз, когда пользователь пытается получить доступ к URL-адресу, он перенаправляется на веб-сайт STS, если этот сеанс не аутентифицирован.

Теперь я хочу добавить страницу в приложение, которая должна быть доступна без аутентификации на сайте. Но я не могу этого сделать. Я попытался указать следующее в web.config. Тем не менее, он перенаправляется на сайт СТС. Здесь я хочу разрешить анонимный доступ к «общедоступному» контроллеру и всем его действиям.

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

It will be great if somebody can guide me with the solution.

Спасибо


person joe    schedule 28.06.2010    source источник
comment
Вы отметили свои контроллеры атрибутом Autorize?   -  person Sergey Mirvoda    schedule 28.06.2010
comment
Да, я использую атрибут Custom Authrozation для защиты приложения. Но похоже, что запрос перенаправляется на STS до попадания в этот атрибут.   -  person joe    schedule 28.06.2010
comment
насколько я знаю, WIF перехватывает OnAuthenticateRequest и перенаправляет его на STS. Как я вижу, вы разрешаете доступ к Public для всех аутентифицированных пользователей. Вам следует отключить аутентификацию.   -  person Sergey Mirvoda    schedule 28.06.2010


Ответы (2)


Взгляните на этот образец приложения. В итоге мы отключили автоматическое перенаправление и сами контролировали его.

Подробнее о том, как это работает здесь.

person Eugenio Pace    schedule 07.07.2010

ПРИМЕЧАНИЕ. Я понимаю, что опоздал с этим ответом примерно на год, но я хотел задокументировать его для использования в будущем.

Звездочка (*) в атрибуте пользователей относится ко всем аутентифицированным пользователям. Чтобы разрешить анонимным или неаутентифицированным пользователям, следует использовать вопросительный знак (?), Как показано ниже.

<location path="Public">
<system.web>
  <authorization>
    <allow users="?" />
  </authorization>
</system.web>
person Rick Liddle    schedule 19.07.2011