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