public async Task <IHttpActionResult> CreateAccount(CreateAccountRequest request) { var user = new HaloUser { UserName = request.Username }; var creationResult = await _userManager.CreateAsync(user, request.Password); if (creationResult.Succeeded == false) { return(BadRequest(string.Join(", ", creationResult.Errors))); } var userBaseData = new UserBaseData { User = new UserId { Id = user.UserId }, Nickname = request.Nickname, BattleTag = "", Level = 0, Clan = new ClanId { Id = 0 }, ClanTag = "" }; await _userBaseDataRepository.SetUserBaseDataAsync(userBaseData); var token = AuthenticateUser(user); return(Ok(token)); }
private string AuthenticateUser(HaloUser haloUser) { var authenticationManager = Request.GetOwinContext().Authentication; authenticationManager.SignOut(); var identity = _userManager.CreateIdentityAsync(haloUser, HaloAuthEnvironment.UserContext).Result; var authenticationProperties = new AuthenticationProperties { IssuedUtc = DateTime.UtcNow, ExpiresUtc = DateTime.UtcNow.Add(TimeSpan.FromDays(1)) }; var ticket = new AuthenticationTicket(identity, authenticationProperties); authenticationManager.SignIn(authenticationProperties, identity); return(_secureDataFormat.Protect(ticket)); }
private static void SeedServer(IDependencyScope scope) { var userManager = (IHaloUserManager)scope.GetService(typeof(IHaloUserManager)); var userBaseDataRepository = (IUserBaseDataRepository)scope.GetService(typeof(IUserBaseDataRepository)); var userSubscriptionRepository = (IUserSubscriptionRepository)scope.GetService(typeof(IUserSubscriptionRepository)); var clanRepository = (IClanRepository)scope.GetService(typeof(IClanRepository)); var clanMembershipRepository = (IClanMembershipRepository)scope.GetService(typeof(IClanMembershipRepository)); try { var clan = clanRepository.FindByNamePrefixAsync("Clan1").Result.FirstOrDefault(); if (clan == null) { clan = new Clan { Name = "Clan1", Description = "First clan", Tag = "TAG" }; clanRepository.CreateAsync(clan).Wait(); } HaloUser testUser1 = new HaloUser { UserName = "******" }; HaloUser testUser2 = new HaloUser { UserName = "******" }; userManager.CreateAsync(testUser1, "123").Wait(); userManager.CreateAsync(testUser2, "456").Wait(); UserBaseData testUser1Data = new UserBaseData { User = new UserId { Id = testUser1.UserId }, Nickname = "User1", Clan = new ClanId { Id = 0 }, ClanTag = "", Level = 2, BattleTag = "BattleTag1" }; UserBaseData testUser2Data = new UserBaseData { User = new UserId { Id = testUser2.UserId }, Nickname = "User2", Clan = new ClanId { Id = 0 }, ClanTag = "", Level = 10, BattleTag = "BattleTag2" }; userBaseDataRepository.SetUserBaseDataAsync(testUser1Data); userBaseDataRepository.SetUserBaseDataAsync(testUser2Data); var testUser1ClanMembership = new ClanMembership { UserId = testUser1.UserId, ClanId = clan.ClanId, Role = 1 }; clanMembershipRepository.CreateAsync(testUser1ClanMembership).Wait(); var testUser1Subscription = new UserSubscription { UserId = testUser1.UserId, FriendUserId = testUser2.UserId }; userSubscriptionRepository.CreateAsync(testUser1Subscription).Wait(); } catch (Exception) { Debug.WriteLine("Server initialization failed."); } }