анонимный доступ к странице ASPX не удается - PullRequest
1 голос
/ 03 августа 2010

У меня есть веб-сайт, который использует аутентификацию форм. По большей части мой веб-сайт требует проверки подлинности, чтобы сделать что-нибудь. Моя страница с заявлением о конфиденциальности является исключением и должна быть доступна для анонимных пользователей. Страница находится в папке, и я установил информацию о пути расположения в файле web.config следующим образом:

<location path="about">
    <system.web>
         <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>
<location allowOverride="true">
    <system.web>
        <authentication mode="Forms">
            <forms name="FDAuth" 
                   cookieless="UseCookies" 
                   protection="All" 
                   loginUrl="login.aspx" 
                   requireSSL="false" 
                   slidingExpiration="false"></forms>
        </authentication>
        <authorization>
            <deny users="?"/>
        </authorization>
    </system.web>
</location>

Эта конфигурация разрешает анонимный доступ к файлам других типов, но по-прежнему запрашивает вход для страниц aspx.

Другими словами, анонимный доступ к этой странице разрешен

www.mywebsite.com / об / privacy.asp

но я перехожу на страницу login.aspx, если я пытаюсь получить доступ к этой странице

www.mywebsite.com / об / privacy.aspx

Что мне нужно сделать, чтобы разрешить анонимный доступ к www.mywebsite.com/about/privacy.aspx?

Ответы [ 4 ]

1 голос
/ 03 августа 2010

просто удалите элемент <location allowOverride="true"> и настройте <authorization/> в <system.web/>

Теги

<location> используются для определения исключений для глобальной политики, которая обычно определяется в <authorization/> в <system.web/>.

0 голосов
/ 03 августа 2010

Понял. Проблема заключалась в том, что страница использует главную страницу. Перемещение главной страницы в папку about решило проблему.

Благодаря быстрым ответам!

0 голосов
/ 03 августа 2010

Вы должны попробовать:

<location path="about">
   <system.web>
      <authorization>
         <allow users="?"/>
      </authorization>
   </system.web>
</location>

Согласно этому примеру MSDN .

Обратите внимание на ? вместо *, используемого для анонимного доступа.

Это должно решить вашу проблему, но если нет, вы можете указать конкретные ресурсы:

<location path="about\privacy.aspx">
0 голосов
/ 03 августа 2010

Еще одна вещь: добавьте строку <allow users="?"/>

*, пользователи соответствуют любым аутентифицированным именам пользователей, в то время как ? соответствует всем неаутентифицированным.

Итак, у вас будет это:

<location path="about">
    <system.web>
         <authorization>
            <allow users="*"/>
            <allow users="?"/>
        </authorization>
    </system.web>
</location>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...