Это не простой вопрос, но я могу дать вам несколько советов.
Для работы с настройками ASP.NET web.config, которые разрешают анонимный доступ или требуют входа пользователя, необходимо создать модуль, который перехватывает HttpApplication.EndRequest и проверяет ошибку HTTP 401 (это означает, что необходима аутентификация).
Сбросьте код ошибки и перенаправьте на свой сайт единого входа. Здесь вы можете войти как обычно.
Теперь начинается самое сложное: вам нужно передать учетные данные пользователя по сети на другой сервер безопасным способом. Это можно сделать с помощью симметричного шифрования и общего секрета или путем обмена секретом с асимметричным шифрованием.
Модуль HttpModule на другой стороне теперь получает перенаправление назад с сайта входа в систему, проверяет, действителен ли вход в систему, и заменяет HttpContext.User (обязательно инкапсулируйте существующего пользователя, если он есть, так что вы можете направьте вызов IsInRole на этот IPrincipal).