public async Task<IdentityResult> RegisterUser(PlayerModel userModel) { Player user = new Player { UserName = userModel.UserName, FirstName = userModel.FirstName, LastName = userModel.LastName, ContactNumber = userModel.ContactNumber, Address1 = userModel.Address1, Address2 = userModel.Address2, Location = userModel.Location, BirthDate = userModel.BirthDate, Gender = userModel.Gender, Email = userModel.Email }; IdentityUser identityUser = new IdentityUser { UserName = userModel.UserName }; var result = await _userManager.CreateAsync(user,userModel.Password); return result; }
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { var userManager = context.OwinContext.GetUserManager<PlayerUserManager>(); var player = new Player(); AuthRepository repo = new AuthRepository(); if(repo.FindUserByEmailAndPass(context.UserName, context.Password)) { player = repo.FindUser(context.UserName); } else { player.UserName = context.UserName; } Player user = await userManager.FindAsync(player.UserName, context.Password); if (!user.EmailConfirmed) { context.SetError("verification", "The account has not yet verified!"); return; } if (user == null) { context.SetError("invalid_grant", "The user name or password is incorrect."); return; } ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager, OAuthDefaults.AuthenticationType); ClaimsIdentity cookiesIdentity = await user.GenerateUserIdentityAsync(userManager, CookieAuthenticationDefaults.AuthenticationType); AuthenticationProperties properties = CreateProperties(user.UserName,user.IsPlayed); AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties); context.Validated(ticket); context.Request.Context.Authentication.SignIn(cookiesIdentity); }
public async Task<IHttpActionResult> RegisterExternal(RegisterExternalBindingModel model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var info = await Authentication.GetExternalLoginInfoAsync(); if (info == null) { return InternalServerError(); } var user = new Player() { UserName = model.Email, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user); if (!result.Succeeded) { return GetErrorResult(result); } result = await UserManager.AddLoginAsync(user.Id, info.Login); if (!result.Succeeded) { return GetErrorResult(result); } return Ok(); }
public async Task<IHttpActionResult> Register(RegisterBindingModel model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var user = new Player() { UserName = model.UserName, Email = model.Email, Address1 = model.Address1, Address2 = model.Address2, BirthDate = model.BirthDate, FirstName = model.FirstName, LastName = model.LastName, Location = model.Location, Gender = model.Gender, ContactNumber = model.ContactNumber }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return GetErrorResult(result); } PlayerModel account = new PlayerModel() { UserName = user.UserName, Email = user.Email, FirstName = user.FirstName, LastName = user.LastName }; var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); var urlEncode = HttpUtility.UrlEncode(code); var callBackUrl = "/register/confirmation/" + user.Id + "/token?code=" + urlEncode; await UserManager.SendEmailAsync(user.Id, "Confirm your Account !", "Please confirm your account by clicking this link: <a href=\"" + callBackUrl + "\">link</a>"); String message = new EmailMessage(account).ParseNotify(); string url = "Please confirm your account by clicking this link: <a href=\"" + "http://"+ HttpContext.Current.Request.Url.Authority + callBackUrl + "\">link</a>"; Email mail = new Email(MessageTemplate.MessageTitle, url, account); mail.SendEmail(); return Ok(); }