public async Task <IHttpActionResult> Register(RegisterBindingModel model) { //confirm email link https://docs.microsoft.com/en-us/aspnet/identity/overview/features-api/account-confirmation-and-password-recovery-with-aspnet-identity if (!ModelState.IsValid) { return(BadRequest(ModelState)); } string uniqueCode = model.FirstName + model.LastName; uniqueCode = uniqueCode.ToLower(); using (tapBioDbEntities db = new tapBioDbEntities()) { List <string> LstuniqueCode = null; LstuniqueCode = (from a in db.AspNetUsers where a.FirstName.Equals(model.FirstName, StringComparison.OrdinalIgnoreCase) && a.LastName.Equals(model.LastName, StringComparison.OrdinalIgnoreCase) select a.UserUniqueCode).ToList(); if (LstuniqueCode.Count > 0) { uniqueCode = uniqueCode + LstuniqueCode.Count; } } var user = new ApplicationUser() { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, UserUniqueCode = uniqueCode }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); string callbackUrl = string.Empty; callbackUrl = this.Url.Link("Default", new { Controller = "Account", Action = "confirmEmailId", userId = user.Id, code = code }); //await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); //var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); //await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); // _sendMails.SendEmail(user.Email, "Please activate your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a> your account credentials are as below <br/> Email Id: " + user.Email + "<br/> Password: " + model.Password, true, null); } if (!result.Succeeded) { return(GetErrorResult(result)); } return(Ok()); }