Если вы используете проверку подлинности Windows, пользователю будет предложено ввести учетные данные только для доступа к вашему сайту. Вы не сможете предотвратить это. Они даже не получат ваш код, пока не будут аутентифицированы.
Мы делали подобные вещи, используя единый вход (SSO), хотя я никогда не привязывал его к аутентификации Windows. Идея заключается в том, что у вас есть два приложения, которые используют общие учетные данные пользователя, и, если вы вошли в одно, вы вошли в другое. Первое приложение будет вашим обычным приложением, которое поддерживает аутентификацию на основе форм. Вторым будет приложение, которое выполняет только аутентификацию Windows, а затем, при успешном входе в систему, перенаправляет на ваше обычное приложение. Поскольку вы уже прошли проверку подлинности, обычное приложение просто создает свой стандартный файл cookie для проверки подлинности и переносит вас на главную страницу приложения.
Обычно они работают путем передачи токена в URL-адресе, который затем можно использовать через обратный канал на сервере единого входа (или, в вашем случае, на сервере аутентификации Windows), чтобы подтвердить, что токен является подлинным. Ответ на вызов обратного канала содержит имя пользователя и другие соответствующие сведения, если токен успешно погашен.
Эскиз процесса может выглядеть следующим образом:
- Получить запрос к защищенному действию на сайте.
- Если не аутентифицирован, перенаправить на сайт авторизации без токена
- Ваш сайт входа в систему содержит форму входа в систему на основе форм и ссылку на URL-адрес аутентификации Windows
- Пользователь нажимает URL-адрес аутентификации Windows
- Сайт аутентификации Windows аутентифицируется, создает одноразовый токен использования в БД для пользователя и перенаправляет обратно на ваше действие входа с токеном
- Ваше действие по входу возвращает токен через обратный канал WebRequest на сервер аутентификации Windows.
- Сервер аутентификации Windows проверяет токен, помечая его как использованный, а затем возвращает имя пользователя для действия входа в систему.
- Ваше действие при входе создает файл cookie для проверки подлинности стандартных форм и продолжается как обычно.