diff --git a/.vs/SecureCore/v16/.suo b/.vs/SecureCore/v16/.suo
index a2bc5aa..d6d28df 100644
Binary files a/.vs/SecureCore/v16/.suo and b/.vs/SecureCore/v16/.suo differ
diff --git a/SecureCore/Authentication.cs b/SecureCore/Authentication.cs
index ff261aa..19b29fb 100644
--- a/SecureCore/Authentication.cs
+++ b/SecureCore/Authentication.cs
@@ -1,6 +1,8 @@
using System;
+using Microsoft.AspNetCore.Http;
using System.Security.Cryptography;
using Microsoft.AspNetCore.Cryptography.KeyDerivation;
+using SecureCore.Services;
namespace SecureCore
{
@@ -37,6 +39,13 @@ namespace SecureCore
return passwordHash == GetPasswordHash(password, saltBytes);
}
+ public static bool IsAllowed(HttpContext context)
+ {
+ if (!context.Request.Cookies.ContainsKey("Session")) return false;
+
+ return UserDataService.IsSessionTokenValid(context.Request.Cookies["Session"]);
+ }
+
private static string GetPasswordHash(string password, byte[] salt)
{
return Convert.ToBase64String(KeyDerivation.Pbkdf2(password, salt, KeyType, Iterations, KeySize));
@@ -53,5 +62,6 @@ namespace SecureCore
{
public string UserName { get; set; }
public string Password { get; set; }
+ public string Email { get; set; }
}
}
diff --git a/SecureCore/Controllers/AuthController.cs b/SecureCore/Controllers/AuthController.cs
index e3ec48e..7f6ea92 100644
--- a/SecureCore/Controllers/AuthController.cs
+++ b/SecureCore/Controllers/AuthController.cs
@@ -5,6 +5,7 @@ using System.Web;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
+using SecureCore.Services;
namespace SecureCore.Controllers
{
@@ -16,20 +17,65 @@ namespace SecureCore.Controllers
[AcceptVerbs("POST")]
public IActionResult Login(LoginInfo info)
{
- var (hash, salt) = Authentication.HashPassword(info.Password);
- var options = new CookieOptions
+ var (password, saltHash) = UserDataService.GetUserPasswordHash(info.UserName);
+
+ if (Authentication.PasswordIsValid(info.Password, saltHash, password))
{
- Domain = "copyrightcrusader.org",
+ if (HttpContext.Request.Cookies.ContainsKey("Session"))
+ {
+ if(UserDataService.IsSessionTokenValid(HttpContext.Request.Cookies["Session"]))//, info.UserName))
+ return Ok($"Session is live{Environment.NewLine}");
+ }
+
+ var sessionToken = Authentication.CreateSessionToken();
+
+ UserDataService.SetUserSessionToken(UserDataService.GetUserId(info.UserName), sessionToken, DateTime.Now.AddDays(7));
+
+ HttpContext.Response.Cookies.Append("Session", sessionToken, GetCookieOptions());
+
+ return Ok($"Logged in success{Environment.NewLine}");
+ }
+ else
+ {
+ return Unauthorized();
+ }
+ }
+
+ [HttpPost("Register")]
+ [AcceptVerbs("POST")]
+ public IActionResult Register(LoginInfo info)
+ {
+ var (hash, salt) = Authentication.HashPassword(info.Password);
+ var sessionToken = Authentication.CreateSessionToken();
+
+ try
+ {
+ var i = UserDataService.RegisterNewUser(info.UserName, info.Email, hash, salt, sessionToken, DateTime.Now.AddDays(7));
+
+ HttpContext.Response.Cookies.Append("Session", sessionToken, GetCookieOptions());
+
+ return Ok($"New User ID: {i}");
+ }
+ catch (Exception e)
+ {
+ return Unauthorized(e.Message);
+ }
+ }
+
+ private CookieOptions GetCookieOptions()
+ {
+ return new CookieOptions
+ {
+ //Domain = "copyrightcrusader.org",
Expires = DateTime.Now.AddDays(7),
- HttpOnly = true,
- Secure = true,
+ //HttpOnly = true,
+ //Secure = true,
Path = "/",
SameSite = SameSiteMode.Strict
};
-
- HttpContext.Response.Cookies.Append("Session", Authentication.CreateSessionToken(), options);
-
- return Ok();
}
}
+
+ //TODO: Read more https://www.valentinog.com/blog/cookies/
+ // And this https://blog.webf.zone/ultimate-guide-to-http-cookies-2aa3e083dbae
}
diff --git a/SecureCore/Controllers/EmployeeController.cs b/SecureCore/Controllers/EmployeeController.cs
index 2b0f904..3189e55 100644
--- a/SecureCore/Controllers/EmployeeController.cs
+++ b/SecureCore/Controllers/EmployeeController.cs
@@ -25,13 +25,19 @@ namespace SecureCore.Controllers
[HttpGet]
public IActionResult Get()
{
- return Ok(DataService.Get());
+ if (Authentication.IsAllowed(HttpContext))
+ return Ok(DataService.Get());
+ else
+ return Unauthorized();
}
[HttpGet("{id}", Name = "Get")]
public IActionResult Get(int id)
{
- return Ok(DataService.GetById(id));
+ if (Authentication.IsAllowed(HttpContext))
+ return Ok(DataService.GetById(id));
+ else
+ return Unauthorized();
}
}
diff --git a/SecureCore/SecureCore.csproj b/SecureCore/SecureCore.csproj
index e8c0a2d..a9862cf 100644
--- a/SecureCore/SecureCore.csproj
+++ b/SecureCore/SecureCore.csproj
@@ -3,10 +3,12 @@
netcoreapp3.1
e3dff1d0-8e29-4bc2-8020-8999a38530f3
+ false
+
diff --git a/SecureCore/Services/UserDataService.cs b/SecureCore/Services/UserDataService.cs
new file mode 100644
index 0000000..b35b4a2
--- /dev/null
+++ b/SecureCore/Services/UserDataService.cs
@@ -0,0 +1,125 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Data;
+using System.Transactions;
+using System.Data.SqlClient;
+
+namespace SecureCore.Services
+{
+ public static class UserDataService
+ {
+ private static string ConnectionString = @"Server=DESKTOP-OEDDVKC\SQLEXPRESS;Database=main;Integrated Security=true;";
+
+ public static (string PasswordHash, string SaltHash) GetUserPasswordHash(string userName)
+ {
+ var userId = GetUserId(userName);
+
+ using(var connection = new SqlConnection(ConnectionString))
+ {
+ using(var command = new SqlCommand("SELECT [Password Hash], [Salt Hash] FROM Login WHERE [User Key] = @UserId", connection))
+ {
+ command.Parameters.AddWithValue("UserId", userId);
+
+ connection.Open();
+
+ var reader = command.ExecuteReader();
+
+ reader.Read();
+
+ return (reader["Password Hash"].ToString(), reader["Salt Hash"].ToString());
+ }
+ }
+ }
+
+ public static int GetUserId(string userName)
+ {
+ using (var connection = new SqlConnection(ConnectionString))
+ {
+ using (var command = new SqlCommand("SELECT [User ID] FROM [User] WHERE Name = @UserName", connection))
+ {
+ command.Parameters.AddWithValue("UserName", userName);
+
+ connection.Open();
+
+ return Convert.ToInt32(command.ExecuteScalar());
+ }
+ }
+ }
+
+ public static void WriteUserPasswordAndSalt(string password, string salt, int userId)
+ {
+ using (var connection = new SqlConnection(ConnectionString))
+ {
+ using (var command = new SqlCommand("INSERT INTO [Login]([Password Hash], [Salt Hash], [User Key]) VALUES (@PasswordHash, @SaltHash, @UserKey)", connection))
+ {
+ command.Parameters.AddWithValue("PasswordHash", password);
+ command.Parameters.AddWithValue("SaltHash", salt);
+ command.Parameters.AddWithValue("UserKey", userId);
+
+ connection.Open();
+
+ command.ExecuteNonQuery();
+ }
+ }
+ }
+
+ public static void SetUserSessionToken(int userId, string sessionToken, DateTime expirationDate)
+ {
+ using (var connection = new SqlConnection(ConnectionString))
+ {
+ using (var command = new SqlCommand("INSERT INTO [Session]([Session Token], [Expiration Date], [User ID]) VALUES (@SessionToken, @ExpirationDate, @UserKey)", connection))
+ {
+ command.Parameters.AddWithValue("SessionToken", sessionToken);
+ command.Parameters.AddWithValue("ExpirationDate", expirationDate);
+ command.Parameters.AddWithValue("UserKey", userId);
+
+ connection.Open();
+
+ command.ExecuteNonQuery();
+ }
+ }
+ }
+
+ public static int RegisterNewUser(string userName, string email, string passwordHash, string saltHash, string sessionToken, DateTime expirationDate)
+ {
+ using (var connection = new SqlConnection(ConnectionString))
+ {
+ using (var command = new SqlCommand("RegisterNewUser", connection) { CommandType = CommandType.StoredProcedure })
+ {
+ command.Parameters.AddWithValue("UserName", userName);
+ command.Parameters.AddWithValue("Email", email);
+ command.Parameters.AddWithValue("Password", passwordHash);
+ command.Parameters.AddWithValue("Salt", saltHash);
+ command.Parameters.AddWithValue("SessionToken", sessionToken);
+ command.Parameters.AddWithValue("ExpirationDate", expirationDate);
+
+ connection.Open();
+
+ var result = command.ExecuteScalar();
+
+ return Convert.ToInt32(result);
+ }
+ }
+ }
+
+ public static bool IsSessionTokenValid(string sessionToken)//, string userName)
+ {
+ using (var connection = new SqlConnection(ConnectionString))
+ {
+ using (var command = new SqlCommand("SELECT 1 AS Valid WHERE EXISTS(SELECT 1 FROM Session WHERE [Session Token] = @SessionToken)", connection))// AND[User ID] = @UserId)", connection))
+ {
+ command.Parameters.AddWithValue("SessionToken", sessionToken);
+ //command.Parameters.AddWithValue("UserId", GetUserId(userName));
+
+ connection.Open();
+
+ var result = command.ExecuteScalar();
+
+ return Convert.ToBoolean(result);
+ }
+ }
+ }
+ }
+}
diff --git a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.assets.cache b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.assets.cache
index 512a3a8..a010b62 100644
Binary files a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.assets.cache and b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.assets.cache differ
diff --git a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csproj.CoreCompileInputs.cache b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csproj.CoreCompileInputs.cache
index 3382332..0771db9 100644
--- a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csproj.CoreCompileInputs.cache
+++ b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-1385de9af3cf01bec97de500355f0e8c6e3204e1
+4d9579093cc42096d4f65291f56f6cb3edc17317
diff --git a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csproj.FileListAbsolute.txt b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csproj.FileListAbsolute.txt
index f404686..0a3c7b7 100644
--- a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csproj.FileListAbsolute.txt
+++ b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csproj.FileListAbsolute.txt
@@ -21,3 +21,9 @@ C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Debug\netcoreapp3.1\Secure
C:\Users\admin\source\repos\SecureCore\SecureCore\bin\Debug\netcoreapp3.1\Microsoft.AspNetCore.Cryptography.Internal.dll
C:\Users\admin\source\repos\SecureCore\SecureCore\bin\Debug\netcoreapp3.1\Microsoft.AspNetCore.Cryptography.KeyDerivation.dll
C:\Users\admin\source\repos\SecureCore\SecureCore\obj\Debug\netcoreapp3.1\SecureCore.csproj.CopyComplete
+C:\Users\admin\source\repos\SecureCore\SecureCore\bin\Debug\netcoreapp3.1\System.Data.SqlClient.dll
+C:\Users\admin\source\repos\SecureCore\SecureCore\bin\Debug\netcoreapp3.1\runtimes\win-arm64\native\sni.dll
+C:\Users\admin\source\repos\SecureCore\SecureCore\bin\Debug\netcoreapp3.1\runtimes\win-x64\native\sni.dll
+C:\Users\admin\source\repos\SecureCore\SecureCore\bin\Debug\netcoreapp3.1\runtimes\win-x86\native\sni.dll
+C:\Users\admin\source\repos\SecureCore\SecureCore\bin\Debug\netcoreapp3.1\runtimes\unix\lib\netcoreapp2.1\System.Data.SqlClient.dll
+C:\Users\admin\source\repos\SecureCore\SecureCore\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp2.1\System.Data.SqlClient.dll
diff --git a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csprojAssemblyReference.cache b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csprojAssemblyReference.cache
index 5b87512..bd1b30c 100644
Binary files a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csprojAssemblyReference.cache and b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csprojAssemblyReference.cache differ
diff --git a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.dll b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.dll
index 6965363..a279d83 100644
Binary files a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.dll and b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.dll differ
diff --git a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.pdb b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.pdb
index ee5020d..31edcdb 100644
Binary files a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.pdb and b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.pdb differ
diff --git a/SecureCore/obj/SecureCore.csproj.nuget.dgspec.json b/SecureCore/obj/SecureCore.csproj.nuget.dgspec.json
index 45c82f1..763cc7a 100644
--- a/SecureCore/obj/SecureCore.csproj.nuget.dgspec.json
+++ b/SecureCore/obj/SecureCore.csproj.nuget.dgspec.json
@@ -43,6 +43,10 @@
"Microsoft.AspNetCore.Cryptography.KeyDerivation": {
"target": "Package",
"version": "[5.0.1, )"
+ },
+ "System.Data.SqlClient": {
+ "target": "Package",
+ "version": "[4.8.2, )"
}
},
"imports": [
diff --git a/SecureCore/obj/project.assets.json b/SecureCore/obj/project.assets.json
index b22af0d..d482706 100644
--- a/SecureCore/obj/project.assets.json
+++ b/SecureCore/obj/project.assets.json
@@ -22,6 +22,135 @@
"runtime": {
"lib/netstandard2.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": {}
}
+ },
+ "Microsoft.NETCore.Platforms/3.1.0": {
+ "type": "package",
+ "compile": {
+ "lib/netstandard1.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard1.0/_._": {}
+ }
+ },
+ "Microsoft.Win32.Registry/4.7.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Security.AccessControl": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0"
+ },
+ "compile": {
+ "ref/netstandard2.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.Win32.Registry.dll": {}
+ },
+ "runtimeTargets": {
+ "runtimes/unix/lib/netstandard2.0/Microsoft.Win32.Registry.dll": {
+ "assetType": "runtime",
+ "rid": "unix"
+ },
+ "runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "runtime.native.System.Data.SqlClient.sni/4.7.0": {
+ "type": "package",
+ "dependencies": {
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/win-arm64/native/sni.dll": {
+ "assetType": "native",
+ "rid": "win-arm64"
+ }
+ }
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/win-x64/native/sni.dll": {
+ "assetType": "native",
+ "rid": "win-x64"
+ }
+ }
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0": {
+ "type": "package",
+ "runtimeTargets": {
+ "runtimes/win-x86/native/sni.dll": {
+ "assetType": "native",
+ "rid": "win-x86"
+ }
+ }
+ },
+ "System.Data.SqlClient/4.8.2": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ },
+ "compile": {
+ "ref/netcoreapp2.1/System.Data.SqlClient.dll": {}
+ },
+ "runtime": {
+ "lib/netcoreapp2.1/System.Data.SqlClient.dll": {}
+ },
+ "runtimeTargets": {
+ "runtimes/unix/lib/netcoreapp2.1/System.Data.SqlClient.dll": {
+ "assetType": "runtime",
+ "rid": "unix"
+ },
+ "runtimes/win/lib/netcoreapp2.1/System.Data.SqlClient.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Security.AccessControl/4.7.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "3.1.0",
+ "System.Security.Principal.Windows": "4.7.0"
+ },
+ "compile": {
+ "ref/netstandard2.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Security.AccessControl.dll": {}
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
+ },
+ "System.Security.Principal.Windows/4.7.0": {
+ "type": "package",
+ "compile": {
+ "ref/netcoreapp3.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Security.Principal.Windows.dll": {}
+ },
+ "runtimeTargets": {
+ "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": {
+ "assetType": "runtime",
+ "rid": "unix"
+ },
+ "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": {
+ "assetType": "runtime",
+ "rid": "win"
+ }
+ }
}
}
},
@@ -63,11 +192,325 @@
"microsoft.aspnetcore.cryptography.keyderivation.5.0.1.nupkg.sha512",
"microsoft.aspnetcore.cryptography.keyderivation.nuspec"
]
+ },
+ "Microsoft.NETCore.Platforms/3.1.0": {
+ "sha512": "z7aeg8oHln2CuNulfhiLYxCVMPEwBl3rzicjvIX+4sUuCwvXw5oXQEtbiU2c0z4qYL5L3Kmx0mMA/+t/SbY67w==",
+ "type": "package",
+ "path": "microsoft.netcore.platforms/3.1.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/netstandard1.0/_._",
+ "microsoft.netcore.platforms.3.1.0.nupkg.sha512",
+ "microsoft.netcore.platforms.nuspec",
+ "runtime.json",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "Microsoft.Win32.Registry/4.7.0": {
+ "sha512": "KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==",
+ "type": "package",
+ "path": "microsoft.win32.registry/4.7.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net46/Microsoft.Win32.Registry.dll",
+ "lib/net461/Microsoft.Win32.Registry.dll",
+ "lib/net461/Microsoft.Win32.Registry.xml",
+ "lib/netstandard1.3/Microsoft.Win32.Registry.dll",
+ "lib/netstandard2.0/Microsoft.Win32.Registry.dll",
+ "lib/netstandard2.0/Microsoft.Win32.Registry.xml",
+ "microsoft.win32.registry.4.7.0.nupkg.sha512",
+ "microsoft.win32.registry.nuspec",
+ "ref/net46/Microsoft.Win32.Registry.dll",
+ "ref/net461/Microsoft.Win32.Registry.dll",
+ "ref/net461/Microsoft.Win32.Registry.xml",
+ "ref/net472/Microsoft.Win32.Registry.dll",
+ "ref/net472/Microsoft.Win32.Registry.xml",
+ "ref/netstandard1.3/Microsoft.Win32.Registry.dll",
+ "ref/netstandard1.3/Microsoft.Win32.Registry.xml",
+ "ref/netstandard1.3/de/Microsoft.Win32.Registry.xml",
+ "ref/netstandard1.3/es/Microsoft.Win32.Registry.xml",
+ "ref/netstandard1.3/fr/Microsoft.Win32.Registry.xml",
+ "ref/netstandard1.3/it/Microsoft.Win32.Registry.xml",
+ "ref/netstandard1.3/ja/Microsoft.Win32.Registry.xml",
+ "ref/netstandard1.3/ko/Microsoft.Win32.Registry.xml",
+ "ref/netstandard1.3/ru/Microsoft.Win32.Registry.xml",
+ "ref/netstandard1.3/zh-hans/Microsoft.Win32.Registry.xml",
+ "ref/netstandard1.3/zh-hant/Microsoft.Win32.Registry.xml",
+ "ref/netstandard2.0/Microsoft.Win32.Registry.dll",
+ "ref/netstandard2.0/Microsoft.Win32.Registry.xml",
+ "runtimes/unix/lib/netstandard2.0/Microsoft.Win32.Registry.dll",
+ "runtimes/unix/lib/netstandard2.0/Microsoft.Win32.Registry.xml",
+ "runtimes/win/lib/net46/Microsoft.Win32.Registry.dll",
+ "runtimes/win/lib/net461/Microsoft.Win32.Registry.dll",
+ "runtimes/win/lib/net461/Microsoft.Win32.Registry.xml",
+ "runtimes/win/lib/netstandard1.3/Microsoft.Win32.Registry.dll",
+ "runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll",
+ "runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.xml",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "runtime.native.System.Data.SqlClient.sni/4.7.0": {
+ "sha512": "9kyFSIdN3T0qjDQ2R0HRXYIhS3l5psBzQi6qqhdLz+SzFyEy4sVxNOke+yyYv8Cu8rPER12c3RDjLT8wF3WBYQ==",
+ "type": "package",
+ "path": "runtime.native.system.data.sqlclient.sni/4.7.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "runtime.native.system.data.sqlclient.sni.4.7.0.nupkg.sha512",
+ "runtime.native.system.data.sqlclient.sni.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
+ "sha512": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg==",
+ "type": "package",
+ "path": "runtime.win-arm64.runtime.native.system.data.sqlclient.sni/4.4.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.win-arm64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
+ "runtime.win-arm64.runtime.native.system.data.sqlclient.sni.nuspec",
+ "runtimes/win-arm64/native/sni.dll",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
+ "sha512": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ==",
+ "type": "package",
+ "path": "runtime.win-x64.runtime.native.system.data.sqlclient.sni/4.4.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.win-x64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
+ "runtime.win-x64.runtime.native.system.data.sqlclient.sni.nuspec",
+ "runtimes/win-x64/native/sni.dll",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0": {
+ "sha512": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA==",
+ "type": "package",
+ "path": "runtime.win-x86.runtime.native.system.data.sqlclient.sni/4.4.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "ThirdPartyNotices.txt",
+ "dotnet_library_license.txt",
+ "runtime.win-x86.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
+ "runtime.win-x86.runtime.native.system.data.sqlclient.sni.nuspec",
+ "runtimes/win-x86/native/sni.dll",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Data.SqlClient/4.8.2": {
+ "sha512": "80vGtW6uLB4AkyrdVuKTXYUyuXDPAsSKbTVfvjndZaRAYxzFzWhJbvUfeAKrN+128ycWZjLIAl61dFUwWHOOTw==",
+ "type": "package",
+ "path": "system.data.sqlclient/4.8.2",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/MonoAndroid10/_._",
+ "lib/MonoTouch10/_._",
+ "lib/net451/System.Data.SqlClient.dll",
+ "lib/net46/System.Data.SqlClient.dll",
+ "lib/net461/System.Data.SqlClient.dll",
+ "lib/net461/System.Data.SqlClient.xml",
+ "lib/netcoreapp2.1/System.Data.SqlClient.dll",
+ "lib/netcoreapp2.1/System.Data.SqlClient.xml",
+ "lib/netstandard1.2/System.Data.SqlClient.dll",
+ "lib/netstandard1.2/System.Data.SqlClient.xml",
+ "lib/netstandard1.3/System.Data.SqlClient.dll",
+ "lib/netstandard1.3/System.Data.SqlClient.xml",
+ "lib/netstandard2.0/System.Data.SqlClient.dll",
+ "lib/netstandard2.0/System.Data.SqlClient.xml",
+ "lib/xamarinios10/_._",
+ "lib/xamarinmac20/_._",
+ "lib/xamarintvos10/_._",
+ "lib/xamarinwatchos10/_._",
+ "ref/MonoAndroid10/_._",
+ "ref/MonoTouch10/_._",
+ "ref/net451/System.Data.SqlClient.dll",
+ "ref/net46/System.Data.SqlClient.dll",
+ "ref/net461/System.Data.SqlClient.dll",
+ "ref/net461/System.Data.SqlClient.xml",
+ "ref/netcoreapp2.1/System.Data.SqlClient.dll",
+ "ref/netcoreapp2.1/System.Data.SqlClient.xml",
+ "ref/netstandard1.2/System.Data.SqlClient.dll",
+ "ref/netstandard1.2/System.Data.SqlClient.xml",
+ "ref/netstandard1.2/de/System.Data.SqlClient.xml",
+ "ref/netstandard1.2/es/System.Data.SqlClient.xml",
+ "ref/netstandard1.2/fr/System.Data.SqlClient.xml",
+ "ref/netstandard1.2/it/System.Data.SqlClient.xml",
+ "ref/netstandard1.2/ja/System.Data.SqlClient.xml",
+ "ref/netstandard1.2/ko/System.Data.SqlClient.xml",
+ "ref/netstandard1.2/ru/System.Data.SqlClient.xml",
+ "ref/netstandard1.2/zh-hans/System.Data.SqlClient.xml",
+ "ref/netstandard1.2/zh-hant/System.Data.SqlClient.xml",
+ "ref/netstandard1.3/System.Data.SqlClient.dll",
+ "ref/netstandard1.3/System.Data.SqlClient.xml",
+ "ref/netstandard1.3/de/System.Data.SqlClient.xml",
+ "ref/netstandard1.3/es/System.Data.SqlClient.xml",
+ "ref/netstandard1.3/fr/System.Data.SqlClient.xml",
+ "ref/netstandard1.3/it/System.Data.SqlClient.xml",
+ "ref/netstandard1.3/ja/System.Data.SqlClient.xml",
+ "ref/netstandard1.3/ko/System.Data.SqlClient.xml",
+ "ref/netstandard1.3/ru/System.Data.SqlClient.xml",
+ "ref/netstandard1.3/zh-hans/System.Data.SqlClient.xml",
+ "ref/netstandard1.3/zh-hant/System.Data.SqlClient.xml",
+ "ref/netstandard2.0/System.Data.SqlClient.dll",
+ "ref/netstandard2.0/System.Data.SqlClient.xml",
+ "ref/xamarinios10/_._",
+ "ref/xamarinmac20/_._",
+ "ref/xamarintvos10/_._",
+ "ref/xamarinwatchos10/_._",
+ "runtimes/unix/lib/netcoreapp2.1/System.Data.SqlClient.dll",
+ "runtimes/unix/lib/netcoreapp2.1/System.Data.SqlClient.xml",
+ "runtimes/unix/lib/netstandard1.3/System.Data.SqlClient.dll",
+ "runtimes/unix/lib/netstandard2.0/System.Data.SqlClient.dll",
+ "runtimes/unix/lib/netstandard2.0/System.Data.SqlClient.xml",
+ "runtimes/win/lib/net451/System.Data.SqlClient.dll",
+ "runtimes/win/lib/net46/System.Data.SqlClient.dll",
+ "runtimes/win/lib/net461/System.Data.SqlClient.dll",
+ "runtimes/win/lib/net461/System.Data.SqlClient.xml",
+ "runtimes/win/lib/netcoreapp2.1/System.Data.SqlClient.dll",
+ "runtimes/win/lib/netcoreapp2.1/System.Data.SqlClient.xml",
+ "runtimes/win/lib/netstandard1.3/System.Data.SqlClient.dll",
+ "runtimes/win/lib/netstandard2.0/System.Data.SqlClient.dll",
+ "runtimes/win/lib/netstandard2.0/System.Data.SqlClient.xml",
+ "runtimes/win/lib/uap10.0.16299/System.Data.SqlClient.dll",
+ "runtimes/win/lib/uap10.0.16299/System.Data.SqlClient.xml",
+ "system.data.sqlclient.4.8.2.nupkg.sha512",
+ "system.data.sqlclient.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Security.AccessControl/4.7.0": {
+ "sha512": "JECvTt5aFF3WT3gHpfofL2MNNP6v84sxtXxpqhLBCcDRzqsPBmHhQ6shv4DwwN2tRlzsUxtb3G9M3763rbXKDg==",
+ "type": "package",
+ "path": "system.security.accesscontrol/4.7.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net46/System.Security.AccessControl.dll",
+ "lib/net461/System.Security.AccessControl.dll",
+ "lib/net461/System.Security.AccessControl.xml",
+ "lib/netstandard1.3/System.Security.AccessControl.dll",
+ "lib/netstandard2.0/System.Security.AccessControl.dll",
+ "lib/netstandard2.0/System.Security.AccessControl.xml",
+ "lib/uap10.0.16299/_._",
+ "ref/net46/System.Security.AccessControl.dll",
+ "ref/net461/System.Security.AccessControl.dll",
+ "ref/net461/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/System.Security.AccessControl.dll",
+ "ref/netstandard1.3/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/de/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/es/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/fr/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/it/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/ja/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/ko/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/ru/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/zh-hans/System.Security.AccessControl.xml",
+ "ref/netstandard1.3/zh-hant/System.Security.AccessControl.xml",
+ "ref/netstandard2.0/System.Security.AccessControl.dll",
+ "ref/netstandard2.0/System.Security.AccessControl.xml",
+ "ref/uap10.0.16299/_._",
+ "runtimes/win/lib/net46/System.Security.AccessControl.dll",
+ "runtimes/win/lib/net461/System.Security.AccessControl.dll",
+ "runtimes/win/lib/net461/System.Security.AccessControl.xml",
+ "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll",
+ "runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.xml",
+ "runtimes/win/lib/netstandard1.3/System.Security.AccessControl.dll",
+ "runtimes/win/lib/uap10.0.16299/_._",
+ "system.security.accesscontrol.4.7.0.nupkg.sha512",
+ "system.security.accesscontrol.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
+ },
+ "System.Security.Principal.Windows/4.7.0": {
+ "sha512": "ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==",
+ "type": "package",
+ "path": "system.security.principal.windows/4.7.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "LICENSE.TXT",
+ "THIRD-PARTY-NOTICES.TXT",
+ "lib/net46/System.Security.Principal.Windows.dll",
+ "lib/net461/System.Security.Principal.Windows.dll",
+ "lib/net461/System.Security.Principal.Windows.xml",
+ "lib/netstandard1.3/System.Security.Principal.Windows.dll",
+ "lib/netstandard2.0/System.Security.Principal.Windows.dll",
+ "lib/netstandard2.0/System.Security.Principal.Windows.xml",
+ "lib/uap10.0.16299/_._",
+ "ref/net46/System.Security.Principal.Windows.dll",
+ "ref/net461/System.Security.Principal.Windows.dll",
+ "ref/net461/System.Security.Principal.Windows.xml",
+ "ref/netcoreapp3.0/System.Security.Principal.Windows.dll",
+ "ref/netcoreapp3.0/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/System.Security.Principal.Windows.dll",
+ "ref/netstandard1.3/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/de/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/es/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/fr/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/it/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/ja/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/ko/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/ru/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/zh-hans/System.Security.Principal.Windows.xml",
+ "ref/netstandard1.3/zh-hant/System.Security.Principal.Windows.xml",
+ "ref/netstandard2.0/System.Security.Principal.Windows.dll",
+ "ref/netstandard2.0/System.Security.Principal.Windows.xml",
+ "ref/uap10.0.16299/_._",
+ "runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.dll",
+ "runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.xml",
+ "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll",
+ "runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.xml",
+ "runtimes/win/lib/net46/System.Security.Principal.Windows.dll",
+ "runtimes/win/lib/net461/System.Security.Principal.Windows.dll",
+ "runtimes/win/lib/net461/System.Security.Principal.Windows.xml",
+ "runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.dll",
+ "runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.xml",
+ "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll",
+ "runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.xml",
+ "runtimes/win/lib/netstandard1.3/System.Security.Principal.Windows.dll",
+ "runtimes/win/lib/uap10.0.16299/_._",
+ "system.security.principal.windows.4.7.0.nupkg.sha512",
+ "system.security.principal.windows.nuspec",
+ "useSharedDesignerContext.txt",
+ "version.txt"
+ ]
}
},
"projectFileDependencyGroups": {
".NETCoreApp,Version=v3.1": [
- "Microsoft.AspNetCore.Cryptography.KeyDerivation >= 5.0.1"
+ "Microsoft.AspNetCore.Cryptography.KeyDerivation >= 5.0.1",
+ "System.Data.SqlClient >= 4.8.2"
]
},
"packageFolders": {
@@ -112,6 +555,10 @@
"Microsoft.AspNetCore.Cryptography.KeyDerivation": {
"target": "Package",
"version": "[5.0.1, )"
+ },
+ "System.Data.SqlClient": {
+ "target": "Package",
+ "version": "[4.8.2, )"
}
},
"imports": [
diff --git a/SecureCore/obj/project.nuget.cache b/SecureCore/obj/project.nuget.cache
index 75546cf..c270a49 100644
--- a/SecureCore/obj/project.nuget.cache
+++ b/SecureCore/obj/project.nuget.cache
@@ -1,11 +1,20 @@
{
"version": 2,
- "dgSpecHash": "kVPmXtAIxW3sLl1aKG4wTc94WxVgDpVrh3dL9khCp0uQd+jCawAmhvkjc5Cx7PmrwWNEqF+HMEi9ePYVrb9lfA==",
+ "dgSpecHash": "fVeCOMKMiay8UO7cX9PN2RymJzVcimdlM2Cinb8QMlDNUE8Cv5a5pJaQr2Ef6Pz56CeNVo5a+3+s/XGFd22oNg==",
"success": true,
"projectFilePath": "C:\\Users\\admin\\source\\repos\\SecureCore\\SecureCore\\SecureCore.csproj",
"expectedPackageFiles": [
"C:\\Users\\admin\\.nuget\\packages\\microsoft.aspnetcore.cryptography.internal\\5.0.1\\microsoft.aspnetcore.cryptography.internal.5.0.1.nupkg.sha512",
- "C:\\Users\\admin\\.nuget\\packages\\microsoft.aspnetcore.cryptography.keyderivation\\5.0.1\\microsoft.aspnetcore.cryptography.keyderivation.5.0.1.nupkg.sha512"
+ "C:\\Users\\admin\\.nuget\\packages\\microsoft.aspnetcore.cryptography.keyderivation\\5.0.1\\microsoft.aspnetcore.cryptography.keyderivation.5.0.1.nupkg.sha512",
+ "C:\\Users\\admin\\.nuget\\packages\\microsoft.netcore.platforms\\3.1.0\\microsoft.netcore.platforms.3.1.0.nupkg.sha512",
+ "C:\\Users\\admin\\.nuget\\packages\\microsoft.win32.registry\\4.7.0\\microsoft.win32.registry.4.7.0.nupkg.sha512",
+ "C:\\Users\\admin\\.nuget\\packages\\runtime.native.system.data.sqlclient.sni\\4.7.0\\runtime.native.system.data.sqlclient.sni.4.7.0.nupkg.sha512",
+ "C:\\Users\\admin\\.nuget\\packages\\runtime.win-arm64.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-arm64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
+ "C:\\Users\\admin\\.nuget\\packages\\runtime.win-x64.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-x64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
+ "C:\\Users\\admin\\.nuget\\packages\\runtime.win-x86.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-x86.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
+ "C:\\Users\\admin\\.nuget\\packages\\system.data.sqlclient\\4.8.2\\system.data.sqlclient.4.8.2.nupkg.sha512",
+ "C:\\Users\\admin\\.nuget\\packages\\system.security.accesscontrol\\4.7.0\\system.security.accesscontrol.4.7.0.nupkg.sha512",
+ "C:\\Users\\admin\\.nuget\\packages\\system.security.principal.windows\\4.7.0\\system.security.principal.windows.4.7.0.nupkg.sha512"
],
"logs": []
}
\ No newline at end of file