Если все сайты имеют общее имя хоста в своих URL-адресах, вы можете установить файл cookie для проверки подлинности (FormsAuthentication.SetAuthCookie), указав путь к cookie, который будет "/", чтобы все сайты могли видеть, что пользователь вошел в систему.
Если сайты не имеют общего имени хоста, я думаю, что единственный способ получить по-настоящему «после входа в систему, вход в систему везде [в пределах вашего круга веб-сайтов]» - это сделать так, чтобы все аутентификации происходили только на одном сайт (возможно, один предназначен для аутентификации пользователя) и для других сайтов, чтобы перенаправить пользователя на этот сайт для аутентификации, а затем этот сайт будет перенаправлен обратно. По сути, этот сайт аутентификации становится провайдером идентификации и почти точно выполняет роль провайдера OpenID (фактически DotNetOpenAuth может использоваться здесь именно для этой цели). Поскольку ваша цель состоит в том, чтобы позволить пользователю войти в систему со своим OpenID, ваш поставщик OpenID на этом сайте аутентификации может сам использовать OpenID для аутентификации пользователя. Ваш собственный поставщик OpenID с открытым делегированием может быть записан так, что он всегда немедленно реагирует на запросы checkid_immediate, если область в запросе аутентификации является одним из ваших доверенных колец сайтов. Таким образом, вы можете осуществлять единый вход на всех своих сайтах.