Я использую платформу идентификации с двумя сторонними поставщиками (LDAP и SAML). Когда пользователь входит в систему через LDAP или SAML, я хочу создать cookie и сохранить его в базе данных. После добавления опции .AddCookie () в мои службы. AddAuthentication я хочу знать, что происходит и когда создается этот файл cookie.
Я могу успешно пройти аутентификацию с LDAP и вернуть сгенерированный токен. Поскольку я использую свою собственную реализацию аутентификации LDAP, я предполагаю, что для создания файла cookie необходимо пройти через SignInManager Identity?
Я надеюсь получить объяснение того, что запускает указанный здесь файл cookie.
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
{
options.Cookie.Name = "MyCookie.Identity";
options.Cookie.Expiration = TimeSpan.FromDays(1);
});
Для справки вот код, выполняющий аутентификацию ldap
using (var pc = new PrincipalContext(ContextType.Domain, this.ldapDomain, this.ldapUser, this.ldapPass))
{
if (pc.ValidateCredentials(user.Login, user.Password))
{
string newToken = Guid.NewGuid().ToString();
LDAPUserManager.ValidUsers[newToken] = user.Login;
try
{
UserPrincipal up = UserPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, user.Login);
LDAPUserManager.UserGroups[newToken] = up?.GetGroups()?.Select(g => g.Name) ?? Array.Empty<string>();
}
catch
{
LDAPUserManager.UserGroups[newToken] = Array.Empty<string>();
}
return newToken;
}
}
После входа в систему с помощью LDAP cookie не создается. Если так, я не уверен, где он генерируется или как отправить его обратно в браузер.