Added basic auth checking code. First bit of code to protect an API call in the Employee controller.

This commit is contained in:
2021-01-03 18:44:08 -06:00
parent 26ea8e8cbc
commit ddb42da7bb
15 changed files with 670 additions and 15 deletions
Binary file not shown.
+10
View File
@@ -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; }
}
}
+55 -9
View File
@@ -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
}
+8 -2
View File
@@ -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();
}
}
+2
View File
@@ -3,10 +3,12 @@
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UserSecretsId>e3dff1d0-8e29-4bc2-8020-8999a38530f3</UserSecretsId>
<SignAssembly>false</SignAssembly>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="5.0.1" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.2" />
</ItemGroup>
+125
View File
@@ -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);
}
}
}
}
}
@@ -1 +1 @@
1385de9af3cf01bec97de500355f0e8c6e3204e1
4d9579093cc42096d4f65291f56f6cb3edc17317
@@ -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
Binary file not shown.
Binary file not shown.
@@ -43,6 +43,10 @@
"Microsoft.AspNetCore.Cryptography.KeyDerivation": {
"target": "Package",
"version": "[5.0.1, )"
},
"System.Data.SqlClient": {
"target": "Package",
"version": "[4.8.2, )"
}
},
"imports": [
+448 -1
View File
@@ -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": [
+11 -2
View File
@@ -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": []
}