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)); }
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()); }
//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); }
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); }