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