Аутентификация и возвращаемый URL

#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="?"/> ).