Некоторое время назад я делал что-то подобное в проекте, и он работал так:
Я настроил приложение на использование проверки подлинности с помощью анонимного доступа в IIS.
Я создал стандартную страницу входа для проверки подлинности с помощью форм, которая принимала идентификатор пользователя и пароль для выполнения неинтегрированных входов в систему.
Я также создал специальную страницу .aspx для входа в систему с интегрированной безопасностью и установил ТОЛЬКО эту страницу для использования интегрированной безопасности (а не анонимного доступа) в IIS. На этой странице вручную создан билет проверки подлинности с помощью форм на основе учетных данных IIS.
На главной странице входа в систему проверки подлинности с помощью форм я посмотрел на входящий адрес в запросе, чтобы узнать, был ли он из локальной сети, и, если это так, перенаправлен на страницу входа с интегрированной безопасностью (чтобы пользователь не получал приглашение от пользователя). Идентификатор и пароль, они просто вошли в систему с интегрированной защитой).
Я также сделал страницу входа для проверки подлинности с помощью форм достаточно умной, чтобы определить, основываясь на вашем идентификаторе пользователя, был ли вы пользователем AD, и выполнить поиск LDAP в AD, если это так, чтобы проверить ваш пароль. Это позволило пользователям, имеющим учетные записи AD, регистрироваться, используя свои учетные данные AD, даже если они не подключены к локальной сети (и, следовательно, не использовали встроенную защиту). Для пользователей, не являющихся пользователями AD, проверка выполнялась по отдельному списку идентификаторов пользователей и хэшей паролей, поддерживаемых приложением.