Ответ 1
Я сделал что-то подобное, выполнив следующее (используя проверку файлов cookie):
1 - установить домен cookie как TLD на всех веб-сайтах
Мой Startup.Auth.cs
выглядит следующим образом:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => {
var identity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
//some additional claims and stuff specific to my needs
return Task.FromResult(identity);
})
},
CookieDomain = ".example.com"
});
2 - обновите web.config всех веб-сайтов, чтобы использовать тот же <machineKey />
Моя выглядит следующим образом:
<machineKey
decryption="Auto"
decryptionKey="my_key"
validation="HMACSHA512"
validationKey="my_other_key" />
Теперь я могу выполнить операции входа в систему, скажем, account.example.com
, и перенаправить пользователя на site1.example.com
, и они будут считаться аутентифицированными.