ASP.Net URL перезапись и аутентификация - PullRequest
0 голосов
/ 20 апреля 2009

У меня есть веб-приложение, использующее .Net 2.0 framework. Весь веб-сайт ограничен для аутентифицированных пользователей, использующих аутентификацию Windows. Эти правила задаются в файле web.config следующим образом:

<location path="/">
    <system.web>
        <authorization>
            <allow roles="CustomerAdministrator, Manager"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>
<location path="Path/To/Public/File.aspx">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>
[...]

Как показано выше, у меня есть одна страница, которую я хочу опубликовать. До этого момента все отлично работало. Недавно мы добавили переписывание URL для более хороших URL, поэтому я установил правило перезаписи для общедоступной страницы:

<RewriterConfig>
    <Rules>
        <RewriterRule>
            <LookFor>~/Public</LookFor>
            <SendTo><![CDATA[~/Path/To/Public/File.aspx]]></SendTo>
        </RewriterRule>
    </Rules>
</RewriterConfig>

Теперь при доступе к общедоступной странице по ее прямому URL-адресу она работает должным образом (аутентификация не требуется), но когда я пытаюсь получить доступ к странице через переписанный URL-адрес, она запрашивает аутентификацию.

Кто-нибудь знает, откуда возникла эта проблема?

Ответы [ 2 ]

0 голосов
/ 13 мая 2009

Я действительно нашел проблему. Я использую проект URLRewriter, который мой коллега обнаружил в Интернете, и проблема возникла из-за того, что он регистрировался на событии HttpApplication AuthorizeRequest. Хотя это работает с проверкой подлинности с помощью форм, это не относится к проверке подлинности Windows, которую я использую.

Чтобы решить проблему, мне просто нужно было изменить ее так, чтобы она регистрировалась вместо события BeginRequest (как написано в комментариях ... RTFM ...).

0 голосов
/ 20 апреля 2009

Вы пытались изменить тег местоположения для использования / Public URL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...