Когда после добавления файла CookieAuthenticationDefaults для Services.AddAuthentication генерируется файл cookie и сохраняется ли он? - PullRequest
0 голосов
/ 28 июня 2019

Я использую платформу идентификации с двумя сторонними поставщиками (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 не создается. Если так, я не уверен, где он генерируется или как отправить его обратно в браузер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...