public async Task<JsonResult> Create(UserModel userModel) { if (!ModelState.IsValid) return Json(new { result = "Validation error" }); AppUser user = new AppUser { UserName = userModel.UserName, FirstName = userModel.FirstName, LastName = userModel.LastName, Email = userModel.Email }; var result = await UserManager.CreateAsync(user); if (result.Succeeded) { string token = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); string baseUrl = GetBaseUrl(); string url = baseUrl + "account/activate?token=" + token; SendActivateEmail(url); var tt = await UserManager.AddToRoleAsync(user.Id, userModel.Role); return Json(new { result = "Success" }); } return Json(new { result = "Failed to create user" }); }
public string GenerateToken(string purpose, AppUser user) { if (user == null) throw new ArgumentNullException(); byte[] encrypted; using (AesCryptoServiceProvider AesProvider = new AesCryptoServiceProvider()) { AesProvider.Key = _key; AesProvider.IV = _iv; ICryptoTransform encryptor = AesProvider.CreateEncryptor(AesProvider.Key, AesProvider.IV); using (MemoryStream memoryStream = new MemoryStream()) { using (CryptoStream csEncrypt = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write)) { using (StreamWriter srWriter = new StreamWriter(csEncrypt)) { srWriter.WriteLine(DateTimeOffset.UtcNow.ToString(DateTimeFormatInfo.InvariantInfo.UniversalSortableDateTimePattern, DateTimeFormatInfo.InvariantInfo)); srWriter.WriteLine(purpose); srWriter.WriteLine(user.Id); } encrypted = memoryStream.ToArray(); } } } return HttpServerUtility.UrlTokenEncode(encrypted); }