First attempt at getting a little meta data on the client. Included a value for peppering all password hashing functions.

This commit is contained in:
2021-01-04 00:20:35 -06:00
parent e03610e390
commit 45dceef75e
7 changed files with 40 additions and 11 deletions
+8 -4
View File
@@ -21,9 +21,11 @@ namespace SecureCore.Controllers
//Very the user has login data.
if (!UserDataService.UserHasLoginData(info.UserName)) return Unauthorized("User doesn't have login creds");
var (password, saltHash) = UserDataService.GetUserPasswordHash(info.UserName);
var (password, salt) = UserDataService.GetUserPasswordHash(info.UserName);
var agent = HttpContext.Request.Headers[Microsoft.Net.Http.Headers.HeaderNames.UserAgent];
var ip = PasswordManager.HashStringData(HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(), salt);
if (PasswordManager.PasswordIsValid(info.Password, saltHash, password))
if (PasswordManager.PasswordIsValid(info.Password, salt, password))
{
if (HttpContext.Request.Cookies.ContainsKey("Session"))
{
@@ -33,7 +35,7 @@ namespace SecureCore.Controllers
var sessionToken = SessionManager.CreateSessionToken();
UserDataService.SetUserSessionToken(UserDataService.GetUserId(info.UserName), sessionToken, DateTime.Now.AddDays(7));
UserDataService.SetUserSessionToken(UserDataService.GetUserId(info.UserName), sessionToken, DateTime.Now.AddDays(7), agent, ip);
HttpContext.Response.Cookies.Append("Session", sessionToken, GetCookieOptions());
@@ -51,10 +53,12 @@ namespace SecureCore.Controllers
{
var (hash, salt) = PasswordManager.HashPassword(info.Password);
var sessionToken = SessionManager.CreateSessionToken();
var agent = HttpContext.Request.Headers[Microsoft.Net.Http.Headers.HeaderNames.UserAgent];
var ip = PasswordManager.HashStringData(HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(), salt);
try
{
var i = UserDataService.RegisterNewUser(info.UserName, info.Email, hash, salt, sessionToken, DateTime.Now.AddDays(7));
var i = UserDataService.RegisterNewUser(info.UserName, info.Email, hash, salt, sessionToken, DateTime.Now.AddDays(7),agent, ip);
HttpContext.Response.Cookies.Append("Session", sessionToken, GetCookieOptions());