Я занимаюсь разработкой интранет-приложения asp.net. Мы будем использовать аутентификацию Windows, поэтому режим аутентификации установлен на windows в web.config.
Я хочу ограничить некоторые страницы только определенными пользователями, поэтому я использую
пометить тегом, чтобы разрешить / запретить определенных пользователей.
Сценарий:
Пользователю1 запрещен доступ к странице «Reports.aspx» (доступ к этой странице ограничен с помощью тега авторизации в web.config)
Пользователь2 имеет доступ к этой странице.
Оба они находятся в домене MYCOMPANY.
Когда пользователь1 пытается получить доступ к этой странице, ему показывается всплывающее окно с учетными данными - он вводит данные «пользователя2», поскольку пользователю2 разрешен доступ; впоследствии user1 теперь может получить доступ к этой странице (используя данные пользователя user2).
Теперь user1 возвращается на какую-то другую страницу, которая не ограничена тегом авторизации. Допустим, он идет на домашнюю страницу. Теперь снова с домашней страницы, он попытается получить доступ к Reports.aspx. На этом этапе, логически говоря, снова должен появиться запрос учетных данных для входа. Но вместо этого всплывающее окно не появляется, и пользователю user1 разрешен доступ к странице REports.
Я решил проверить имя пользователя с помощью HTTPContext.Current.User.Identity.Name в этом сценарии. Когда пользователь1 пытается получить доступ к Reports.aspx во второй раз (после первого успешного входа в систему), его учетные данные хранятся в браузере (я полагаю), потому что в этот раз, когда страница загружается, учетные данные отображаются как User2 в коде позади.
Как предотвратить это и каждый раз вызывать запрос на вход для этой страницы?