2015-02-13 4 views
0

Я использую asp.net Идентичность 2, в web.config в папке Account У меня есть следующиеRegister.aspx перенаправляет Анонимные пользователи на страницу входа

<location path="Register.aspx"> 
    <system.web> 
     <authorization> 
      <allow users="*"/> 
     </authorization> 
    </system.web> 
</location> 
<system.web> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 
</system.web> 

Проблема в том, что, когда я пытаюсь получить доступ к register.aspx перенаправляет меня на страницу входа. Мне нужны неавторизованные пользователи, чтобы иметь возможность получить доступ к странице регистрации

ответ

0

Вы можете использовать AllowOverride на месте, чтобы установить глобальное отрицать разрешение:

<location path="Register.aspx"> 
    <system.web> 
     <authorization> 
      <allow users="*"/> 
     </authorization> 
    </system.web> 
</location> 
<location allowOverride="true"> 
    <system.web> 
     <authorization> 
      <deny users="?"/> 
     </authorization> 
    </system.web> 
</location> 

Это будет обрабатывать ваши проблемы перенаправления на Регистре, но оставит вы должны сделать дополнительные исключения для своих активов, таких как изображения, сценарии и стили.

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

Project 
/images/... 
/styles/... 
/secured/account.aspx 
/secured/web.config (this is where you'd have your `deny` authorization) 
/Register.aspx 
/web.config (use allow all users at this level) 

Теперь вы можете легко управлять доступом пользователей к файлам, и это намного чище.

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