#asp.net #authentication
#asp.net #аутентификация
Вопрос:
После входа на мою страницу я открыл разные ссылки на моей странице, ссылка передана со строкой запроса
пример: http://localhost/document/doc.aspx?aaa=ddd
когда я удаляю строку запроса в URL и копирую URL-адрес, открываю новый браузер и вставляю URL-адрес при нажатии на открывающуюся страницу ввода doc.aspx, я хочу перенаправить страницу входа в систему на этот раз. У меня есть нумерация страниц в моем приложении, как я могу это сделать. Мы используем аутентификацию в формах
Ответ №1:
Это встроенное поведение с ASP.Net Поставщик членства — проверяет аутентификацию перед доступом к любому защищенному URL.
Когда вы говорите об «открытии другого браузера», вы имеете в виду новый экземпляр того же браузера, т. е. 2 окна Internet Explorer, или экземпляр другого браузера, т.е. 1 окно Firefox, 1 окно Chrome? Если вы используете тот же браузер, у него все равно будет файл cookie для аутентификации, и он все равно будет аутентифицирован, но если вы откроете другой браузер (который не использует файлы cookie совместно с другим), тогда вы получите свое поведение перенаправления. Если бы вы скопировали / вставили свою ссылку кому-то другому, они, конечно, были бы перенаправлены, потому что у них нет cookie для аутентификации, за исключением случаев, когда они в данный момент вошли в систему под своим именем.
Ответ №2:
Вам необходимо убедиться, что ваша страница / папка заблокирована в web.config.
Элемент позволяет указать путь к файлу (/document/doc.aspx) или ко всей папке (/document/). Затем вы можете заблокировать это по различным критериям, таким как любой аутентифицированный пользователь, определенная роль (роли), конкретный пользователь (ы).
Загляните в свой web.config и убедитесь, что внизу есть следующее (поместите его между </runtime>
и </configuration>
:
</runtime>
<!-- access permissions -->
<location path="/document/">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
</configuration>
Как вы можете видеть из этого примера, я заблокировал всю папку ( path="/document/"
) от любых пользователей, не прошедших проверку подлинности ( <deny users="?"/>
).