Ejemplo n.º 1
0
        public async Task CanFindByLogin()
        {
            var type11 = new ElasticIdentityUserLogin("loginProvider1", "providerKey1", "Login Provider 1");
            var type12 = new ElasticIdentityUserLogin("loginProvider1", "providerKey2", "Login Provider 1");
            var type21 = new ElasticIdentityUserLogin("loginProvider2", "providerKey1", "Login Provider 2");

            // user type 11
            ElasticIdentityUser user11 = new ElasticIdentityUser(nameof(user11));

            user11.Logins.Add(type11);
            await _store.CreateAsync(user11, CancellationToken.None);

            // user type 12
            ElasticIdentityUser user12 = new ElasticIdentityUser(nameof(user12));

            user12.Logins.Add(type12);
            user12.Logins.Add(type21);
            await _store.CreateAsync(user12, CancellationToken.None);

            // user type 21
            ElasticIdentityUser user21 = new ElasticIdentityUser(nameof(user21));

            user21.Logins.Add(type21);
            user21.Logins.Add(type12);
            await _store.CreateAsync(user21, CancellationToken.None);

            _elasticClient.Indices.Refresh(_indexName);

            var user = await _store.FindByLoginAsync(type11.LoginProvider, type11.ProviderKey, CancellationToken.None);

            Assert.Equal(nameof(user11), user.UserName);
        }
Ejemplo n.º 2
0
        public async Task FindByLogin_Test()
        {
            var store = new ElasticUserStore <ElasticUser, ElasticRole>(_nestClient, new ElasticOptions {
                UsersIndex = _userIndex
            });

            var user1 = new ElasticUser
            {
                UserName     = "******",
                PasswordHash = "phash",
                Logins       = new List <ElasticUserLogin> {
                    new ElasticUserLogin(new UserLoginInfo("prov1", "key1", "test1"))
                },
                Email = new ElasticConfirmation("*****@*****.**")
            };
            var user2 = new ElasticUser
            {
                UserName     = "******",
                PasswordHash = "phash",
                Logins       = new List <ElasticUserLogin> {
                    new ElasticUserLogin(new UserLoginInfo("prov2", "key2", "test2"))
                },
                Email = new ElasticConfirmation("*****@*****.**")
            };

            var createResult1 = await store.CreateAsync(user1, NoCancellationToken);

            var createResult2 = await store.CreateAsync(user2, NoCancellationToken);

            var elasticUser = await store.FindByLoginAsync("prov2", "key2", NoCancellationToken);

            Assert.Equal(createResult1, IdentityResult.Success);
            Assert.Equal(createResult2, IdentityResult.Success);
            Assert.Equal(user2.Id, elasticUser.Id);
        }