Changeset 1dcdb2c for KernelRecordsMVC.Web/Controllers/AccountController.cs
- Timestamp:
- 09/09/26 03:30:35 (3 weeks ago)
- Branches:
- main
- Children:
- 6886d95
- Parents:
- 595d2e5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
KernelRecordsMVC.Web/Controllers/AccountController.cs
r595d2e5 r1dcdb2c 6 6 using Microsoft.AspNetCore.Mvc; 7 7 using Microsoft.EntityFrameworkCore; 8 using Microsoft.AspNetCore.Identity; 8 9 9 10 namespace KernelRecordsMVC.Web.Controllers; … … 12 13 { 13 14 private readonly KernelRecordsContext _context; 14 15 public AccountController(KernelRecordsContext context) 15 private readonly IPasswordHasher<User> _passwordHasher; 16 17 public AccountController(KernelRecordsContext context,IPasswordHasher<User> passwordHasher) 16 18 { 17 19 _context = context; 20 _passwordHasher = passwordHasher; 18 21 } 19 22 … … 59 62 } 60 63 61 var user = new User 62 { 63 Email = model.Email, 64 Username = model.Username, 65 66 // TODO: 67 // Replace with password hashing later. 68 Password = model.Password, 69 70 DateCreated = DateTime.Today, 71 ShippingAddress = model.ShippingAddress, 72 TelephoneNumber = model.TelephoneNumber 73 }; 74 75 _context.Users.Add(user); 76 77 _context.SaveChanges(); 78 79 80 // Every normal registered user is a Consumer. 81 var consumer = new Consumer 82 { 83 UserId = user.UserId, 84 PointsCollected = 0 85 }; 86 87 _context.Consumers.Add(consumer); 88 89 _context.SaveChanges(); 90 91 return RedirectToAction(nameof(Login)); 64 using var transaction = 65 _context.Database.BeginTransaction(); 66 67 try 68 { 69 var user = new User 70 { 71 Email = model.Email, 72 Username = model.Username, 73 DateCreated = DateTime.Today, 74 ShippingAddress = model.ShippingAddress, 75 TelephoneNumber = model.TelephoneNumber 76 }; 77 78 user.Password = 79 _passwordHasher.HashPassword( 80 user, 81 model.Password); 82 83 _context.Users.Add(user); 84 _context.SaveChanges(); 85 86 var consumer = new Consumer 87 { 88 UserId = user.UserId, 89 PointsCollected = 0 90 }; 91 92 _context.Consumers.Add(consumer); 93 _context.SaveChanges(); 94 95 transaction.Commit(); 96 97 return RedirectToAction(nameof(Login)); 98 } 99 catch 100 { 101 transaction.Rollback(); 102 throw; 103 } 92 104 } 93 105 … … 118 130 var user = _context.Users 119 131 .FirstOrDefault(x => 120 x.Username == model.Username && 121 x.Password == model.Password); 132 x.Username == model.Username); 122 133 123 134 if (user == null) 135 { 136 ModelState.AddModelError( 137 "", 138 "Invalid username or password."); 139 140 return View(model); 141 } 142 143 var result = 144 _passwordHasher.VerifyHashedPassword( 145 user, 146 user.Password, 147 model.Password); 148 149 if (result == PasswordVerificationResult.Failed) 124 150 { 125 151 ModelState.AddModelError(
Note:
See TracChangeset
for help on using the changeset viewer.
