Beispiel #1
0
        public async Task CanRetrieveUserLoginInfo()
        {
            var guid = Guid.NewGuid().ToString();

            var serviceProvider = BuildServiceProvider();

            var userManager = serviceProvider.GetService <UserManager <MongoIdentityUser> >();

            var cancelToken = new CancellationTokenSource();

            var user = CreateTestUser();

            AssertSucceeded(await userManager.CreateAsync(user));

            var loginInfo = new Microsoft.AspNetCore.Identity.UserLoginInfo(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "Facebook");

            AssertSucceeded(await userManager.AddLoginAsync(user, loginInfo));

            var retrieveUser = await userManager.FindByIdAsync(user.Id);

            Assert.NotEmpty(retrieveUser.Logins);
            Assert.Equal(loginInfo.LoginProvider, retrieveUser.Logins[0].LoginProvider);
            Assert.Equal(loginInfo.ProviderKey, retrieveUser.Logins[0].ProviderKey);
            Assert.Equal("Facebook", retrieveUser.Logins[0].ProviderDisplayName);


            var foundUser = await userManager.FindByLoginAsync(loginInfo.LoginProvider, loginInfo.ProviderKey);

            Assert.NotNull(foundUser);
            Assert.Equal(user.Id, foundUser.Id);

            AssertSucceeded(await userManager.DeleteAsync(user));
        }
Beispiel #2
0
 public Task AddLoginAsync(TUser user, Microsoft.AspNetCore.Identity.UserLoginInfo login, CancellationToken cancellationToken)
 {
     return(Task.Run(() => user.AddLogin(new UserLoginInfo
     {
         LoginProvider = login.LoginProvider,
         ProviderDisplayName = login.ProviderDisplayName,
         ProviderKey = login.ProviderKey,
     }), cancellationToken));
 }
        protected virtual async Task <List <Tenant> > FindPossibleTenantsOfUserAsync(Microsoft.AspNetCore.Identity.UserLoginInfo login)
        {
            List <User> allUsers;

            using (_unitOfWorkManager.Current.DisableFilter(AbpDataFilters.MayHaveTenant))
            {
                allUsers = await _userManager.FindAllAsync(login);
            }

            return(allUsers
                   .Where(u => u.TenantId != null)
                   .Select(u => AsyncHelper.RunSync(() => _tenantManager.FindByIdAsync(u.TenantId.Value)))
                   .ToList());
        }
Beispiel #4
0
        //public async Task CanAddAuthenticationTokenUsingUserManager()
        public async Task CanAddUserLoginInfo()
        {
            var guid = Guid.NewGuid().ToString();

            var serviceProvider = BuildServiceProvider();

            //var userStore = serviceProvider.GetService<IUserStore<IdentityUser>>();

            var userManager = serviceProvider.GetService <UserManager <MongoIdentityUser> >();

            var cancelToken = new CancellationTokenSource();

            var user = CreateTestUser();

            AssertSucceeded(await userManager.CreateAsync(user));

            var loginInfo = new Microsoft.AspNetCore.Identity.UserLoginInfo(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "Facebook");

            AssertSucceeded(await userManager.AddLoginAsync(user, loginInfo));

            var retrieveUser = await userManager.FindByIdAsync(user.Id);

            Assert.NotEmpty(retrieveUser.Logins);
            Assert.Equal(loginInfo.LoginProvider, retrieveUser.Logins[0].LoginProvider);
            Assert.Equal(loginInfo.ProviderKey, retrieveUser.Logins[0].ProviderKey);
            Assert.Equal("Facebook", retrieveUser.Logins[0].ProviderDisplayName);

            //IUserLockoutStore<IdentityUser>

            ////Task AddLoginAsync(TUser user, UserLoginInfo login, CancellationToken cancellationToken);
            ////Task<TUser> FindByLoginAsync(string loginProvider, string providerKey, CancellationToken cancellationToken);
            ////Task<IList<UserLoginInfo>> GetLoginsAsync(TUser user, CancellationToken cancellationToken);
            ////Task RemoveLoginAsync(TUser user, string loginProvider, string providerKey, CancellationToken cancellationToken);

            //var result = await userManager.CreateAsync(user);

            //Assert.True(result.Succeeded);

            AssertSucceeded(await userManager.DeleteAsync(user));
        }
		public Task<IdentityResult> AddLoginAsync(ApplicationUser user, UserLoginInfo userLoginInfo) {
			return userManager.AddLoginAsync(user, userLoginInfo);
		}
Beispiel #6
0
        public async Task _02_CanDoCurd()
        {
            var user = new NHIdentityUser {
                UserName           = "******",
                NormalizedUserName = "******",
                Email                = "*****@*****.**",
                PhoneNumber          = "02000000000",
                PhoneNumberConfirmed = true,
                LockoutEnabled       = false,
                LockoutEnd           = null,
                AccessFailedCount    = 0,
                NormalizedEmail      = "*****@*****.**",
                PasswordHash         = null,
                SecurityStamp        = null
            };
            var result = await store.CreateAsync(user);

            Assert.True(result.Succeeded);
            var id = user.Id;

            Assert.IsNotEmpty(id);
            Assert.IsNotEmpty(user.ConcurrencyStamp);

            user.LockoutEnabled = true;
            user.LockoutEnd     = DateTimeOffset.UtcNow.AddMinutes(20);
            result = await store.UpdateAsync(user);

            Assert.True(result.Succeeded);

            var lockouts = await store.Users
                           .Where(u => u.LockoutEnabled)
                           .CountAsync();

            Assert.True(lockouts > 0);

            user = await store.FindByEmailAsync(user.NormalizedEmail);

            Assert.True(user.Id == id);

            user = await store.FindByNameAsync(user.NormalizedUserName);

            Assert.True(user.Id == id);

            user = await store.FindByIdAsync(id);

            Assert.True(user.Id == id);

            var claim = new Claim("Test", Guid.NewGuid().ToString("N"));
            await store.AddClaimsAsync(user, new [] { claim });

            var claims = await store.GetClaimsAsync(user);

            Assert.True(claims.Count > 0);

            var users = await store.GetUsersForClaimAsync(claim);

            Assert.IsNotEmpty(users);

            await store.RemoveClaimsAsync(user, claims);

            var loginInfo = new Microsoft.AspNetCore.Identity.UserLoginInfo(
                "test",
                Guid.NewGuid().ToString("N"),
                "Test"
                );
            await store.AddLoginAsync(user, loginInfo);

            await store.SetTokenAsync(
                user,
                loginInfo.LoginProvider,
                loginInfo.ProviderDisplayName,
                loginInfo.ProviderKey,
                CancellationToken.None
                );

            await store.RemoveTokenAsync(
                user,
                loginInfo.LoginProvider,
                loginInfo.ProviderDisplayName,
                CancellationToken.None
                );

            await store.RemoveLoginAsync(
                user,
                loginInfo.LoginProvider,
                loginInfo.ProviderKey
                );

            result = await store.DeleteAsync(user);

            Assert.True(result.Succeeded);
        }