Элемент Location Web.config работает неправильно - PullRequest
1 голос
/ 30 августа 2010

Среда : ASP.NET 3.5, C #, проверка подлинности с помощью форм, IIS 6

Сведения о проблеме : у меня есть файл web.config, настроенный с проверкой подлинности с помощью форми следующие элементы location отображаются следующим образом:

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

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

В папке Home / Common содержатся мои ForgotPassword.aspx.

Страница Login.aspx установлена ​​как LoginUrl

Когда страница входа в систему посещается в первый раз (без предварительных файлов cookie и т. Д.), Ссылка ForgotPassword функционирует нормально.Он перенаправляет на страницу по желанию.Однако после входа пользователя после выхода ссылка ForgotPassword не перенаправляется.Скорее, проверка подлинности форм предшествует и перенаправляет на URL-адрес входа с строкой запроса ReturnURL, указывающей на страницу «Забыл пароль».

Вопрос заключается просто в следующем: если до подписания элемент считается и правильно исключен из проверки подлинности форм, зачем отправлятьВход в систему и выход из нее входит в сферу проверки подлинности с помощью форм.

Следует отметить, что при очистке истории браузера функциональность работает должным образом.

Любая помощь приветствуется.

Спасибо.

1 Ответ

1 голос
/ 14 июня 2011

Чаще используется вопросительный знак (?), Чтобы разрешить / запретить неаутентифицированным пользователям. Неаутентифицированные пользователи - это те, кому действительно нужно использовать страницу входа и функцию сброса пароля, поэтому предоставление всем пользователям (*) доступа к ним является неверной конфигурацией. Однако вы еще не опубликовали весь свой файл Web.config. Будет корневая конфигурация для авторизации, которая имеет дело со «всем остальным».

Как я мог бы сконфигурировать это в корне , у меня будет:

<authorization>
    <allow users="*" />
</authorization>

А позже в файле Web.config определите защищенные местоположения:

<location path="Business/Services">
    <deny users="?" />
</location>

Что запрещает всем неаутентифицированным пользователям страницы в этой папке. Ваш логин и забытый пароль страницы будут в корневой папке. В любом случае, я либо что-то упустил, либо у вас не настроена корневая аутентификация, что может сбить с толку аутентификацию ASP.NET.

...