From ddb42da7bb63d6702a367fe09610bae726bf059a Mon Sep 17 00:00:00 2001 From: Garrritt McCune Date: Sun, 3 Jan 2021 18:44:08 -0600 Subject: [PATCH] Added basic auth checking code. First bit of code to protect an API call in the Employee controller. --- .vs/SecureCore/v16/.suo | Bin 50688 -> 38400 bytes SecureCore/Authentication.cs | 10 + SecureCore/Controllers/AuthController.cs | 64 ++- SecureCore/Controllers/EmployeeController.cs | 10 +- SecureCore/SecureCore.csproj | 2 + SecureCore/Services/UserDataService.cs | 125 +++++ .../netcoreapp3.1/SecureCore.assets.cache | Bin 1441 -> 6669 bytes .../SecureCore.csproj.CoreCompileInputs.cache | 2 +- .../SecureCore.csproj.FileListAbsolute.txt | 6 + .../SecureCore.csprojAssemblyReference.cache | Bin 424 -> 424 bytes .../obj/Debug/netcoreapp3.1/SecureCore.dll | Bin 13312 -> 17920 bytes .../obj/Debug/netcoreapp3.1/SecureCore.pdb | Bin 21480 -> 23228 bytes .../obj/SecureCore.csproj.nuget.dgspec.json | 4 + SecureCore/obj/project.assets.json | 449 +++++++++++++++++- SecureCore/obj/project.nuget.cache | 13 +- 15 files changed, 670 insertions(+), 15 deletions(-) create mode 100644 SecureCore/Services/UserDataService.cs diff --git a/.vs/SecureCore/v16/.suo b/.vs/SecureCore/v16/.suo index a2bc5aa6f0af0b9b5c98cb8f6acdc562c79e14d8..d6d28df2ee73c463819c3ae5ebe2dbc9a2819ce4 100644 GIT binary patch delta 3292 zcmZqZVQyH%G{HcYi2(`(7#R2&7#KkOfB*mg2Z=II-pC@pF<}nlBqkq5w#kZ2@_Yg2 zjbdt#t}%KsFfbf2m|Vr=$;qhAz`(%5z`!tBK2mYA0TVmpp~+vFnwc0`CRZ_6@dhz4 zFs$JO8OOlDF`1D?npKT~fk75z^uz=nMhOUmg)wFFMi${zWd;U@|NsC0PleJTHVA7$ z`ECph40;R<3`tNvNY0djfk6<;XJcSsP-S3XU}s=pFl1n0@PLYg)Pb-*0|SF6#7dP( z+$jB>p|im%*DXKz|FwGz{kMAAjZJJAi%)DAPS8g9tH*m z2?hoRRt5$J5e5bZNd^W6AqEBpVFm^UkXgz25YEI zwhRmmb_@&*_6!UR4$xq8LJBr_s39POK`sN);*dByGKoutaph!Hu6EzGP}6oYFfgoV zU|`t5z`(E(Dz=${fnf`jy^Vo^VLJl@!wx8a7Xt&sZUzR1Jy8BW1_p-xlNU+}Pu|1j zGBIJpB%Z^Z42;mggC%L!gP=4v`6rM6jun z#=yy?LiLORlfMf2aWaCk2Pkr3{$cc*Tq^vZuo}_c$xI4GY&r}K3?~F9SJ|E70A(0Z zIRQ7xVREUWKZh&>0|O{E!h|_NkqatI7&iZvc4M6EEE79jz`X=AT;Lj2xiy1LQiGs?8-j=b1PeK}i%;48epa zm+1E_GGm%#;K2gQ5(r^~^PG&J+zBe@;GzxTER!n?J0>^Ss7+Q9mYVFK!@&Z|$}k12 zTNxM_?o7UDs6P3Dp~PeZCZ5R)9pu4m5Fd&e83>3PFtJWP5UDo#!3v4Zc1DL7C)v1g zfXY%(euP;yxy0rI2go;|%!&}S?cq;JO-n4zDTy!1EpRk7bK1-wWXPD4!oUE|E1=?5 z`28bk7jAC#Z;iT6_YV7?-}%pdQckw6Q{UO=`bYhB7iHG!I)&J!P73s%w=%s}*Gc;5 z>%yuqXS-uLx=w-u1vOGm0=sV4>N?Gv@2cJ-tuQG%TNhL+Flb9eaxco#b(*ZmB(nKH zumjWN<$3j+>+>2JCn=P$g)lHMoC77zUyRsOA`d(zGB7YK3S*k&;WgRI#cc8chkeWj z2FoThN|sN)G(%=GlZS|emustz*|vA#-y>9}&bQgVG5p@t7;lZ2hc?ZMVPXZPddA5C zLE@9bSs1~L$wgT@EDzrO|3BGI(uygRVN$w?P8mZcLo!1ugC0XNLoovbLk_fv1<{~_ z4U(!MuP zjCzDK@1h7M?h}HLT8N!t|Kts&bv&s>WtqvT#WAJDsYR3LmzzyKTXdZ9;H1*rNm3tZ zl*th}oCTD_L4`b?oIN?PB6RYU;_Z|Fmu%SVU1G#IS+~rHpOJxq5max0;x^L(yH{A) z8C>^r%z&S>)5W=>%|a{Op=lQ&koiGfRAkV6=h4}c0y zP=)WZX;P^xs8Dipne4)Bz_@90sgoZkBdBZ#)y}ZY&bV&!SEtJ?pc)@0#FNXwzyPWz zK_*U~SdzCnwsIDe7^p=75&>aQYXemNyKJ3QTD!TfO^i_xA+2-()FR^9ysg+MBpLAv31^4*8Il6*p$x^KyfvAB zf;=0j7VLmXEtn`YIbw#}B*_z#J62dsE|f5ttae0d@|zh(lO0wbn6&S}*5F!{j>yUhpoA7Gp;w^C{Hfqi$FRxnK7=oYj2&Y=`Wm`$)kL=w{M>SAzauwsZ| zfZESc%n&pA{}IQ@NfR9=H#jzM+A%M^x4lNLo&nVCot$t$oX5yS$Dqb7F{d~+m0_}D zm+<7QF22bZ4sMvd!dOBa6hg%edJI_%#SHljc?=8;91IK$D<<0?+0F^}AlQO>8+B*} zVnV$-gS1L)l7ypxu3Cuuhska$XDB{U5w!ZpHhE*0zJT1$Px{5aXOpYj#G9C}rLUTN o;NStc*HXcyAf&_u<)IY}&XetrG?Gw5^`4*XEM~a5#HWW50Hfm79RL6T delta 4192 zcmZoz!_?5jJi%b{1!opX1`rTnVBle3U|?ckVEFg{|9_AW<77n^<&6mw7$-6LFv?C= zWRmAgkT!N({qP#21_J{_gURG7CQnWVZ3YGg76t}}$?}nklMR^I8P`qz%GAuXm3eX% za}{p@0|P@02go=E2F}ThEYkIS3=9na|NsBb&%nSS&cMJR&%nUI#=yWJ#K6EH%)r3F z3ze5(U|^79U|`^4U|?WpU|jusu6+GAoCQUY-I)p22}Ae}7#P%`YNZ(%7(l@W5=Ra;L#Vs}0|P@klnqh?!h%pfD+2?AJ_7@TD+2?A9s>h| zE>s+(287)h7#O@DVw2TbWG5y_*qA~?6(sEmjR+rzlK;L83=Dn@3=IAZ3=AM|$1*T5 z1Tio$gh1sd2e7IzCV~7Vo6Nw#kix*gkjlWokjB8k01EXC)KIsW#HGTxcCsp0`{X4G z0+V^TT^RpO4Aho9!@$6B7V3)g3=9kx7#J8Xg7^~ycTeIu%*n{ez`y_sNm!z01qCz1 z7HDobRHD&lS`ES zIT=B@2~?25WH*0_XJKS4*!)w?n{l#BkHO{=jq^;b44{k$^4a7P?Vd?`9+N%fbS9VR zLCk5eXPI1~-!Yk~O=R+gu8_?cMl%>EDSRL^v=`|x;SBH|Y=O-U4s1|ZF)&R2Z|uqe zDimx$X#rZcPcAXJzyS(VYZO7#o=IXQY@mn+#gEM|9I?R-(g~_zK$`!nte-q1QfP96 z!#+la$@QI$lk!|RK*g~YNET`z%Ph!oXOPRlz_1VES_T6H1B2Qc z1091Jx5S*{R8Ya~Y!y>bniNx>nxvPUpO==IK6zog#^m}y&dH$;+LIp?aB&5v7L{ct zrxwR}PCn3L#$~Bv3ejCQSuoIq-#0%cHK#bnHMbxqzcMv-^2Ro8Rzm|FV~fdLEfp{` zCU0-C=Qc8d*_%39FwmGquQ(?UW*K81$gs()+KhM%&2$WnAU3pt1@{IzPYPt?F}Kh$ zG&F`tOunZo#{&v-Q0fK+$7J6k@yYq+qU?SQg$xA@Ig|g}dr$W2He*~i`JhqlWIH1* z#o})ZUd8V|dfC+KsMs`_qwiEgR9@cDNuF~rQmue%(Nb*&P;og~Ay7p~Zs#ZcV&AjL z)otQU%-7Oa$?k#Z8)b-PyAN&4vP!m2Q5yJI=JPV?rws`p4MOp4Cdbz2be$$EGKp+HVD7-Q$c|~UV2R{r$%yBSlRwp5+kDMQ zi*b_L4{!$dVw`+f*miS+#$lo|us0_os09Hkq@aPt%_y_^r#3s&B$pU&XNG)+B8F53 z76y^Y0!AWilNgg3tQaRNG6@SOGn9g*(3Eh3l{|R&|NrEL)rOPbd2vs26`3sJrZd^W z)o_wM2PmLG`M`H_qpLDA8^qkryIqBt7=vyN#8ASJ zIa$>^mfL^<1{o$Z2H8&vY9J~ff(i<#*VuWG^Wh>Zrp*mO-xx(07_7lfH%A6Z5lF+1 zgJE(&;o-@rqmEAwP20YCPr4D~%&6thh2*$YSdM#`rp>r#a$!c@ zbv&<$dWb%QGVc}qK*#y!w*($?qb6&wLrpb0?JY1j#C8!1CvK1t^d3LcF zqbM^dXrLHWIe?fhlM6EHK(=o#E8WP%3Tgu@Zq})oz{uo+W}zUzr%PfopbOoqwsRf>~inj|JWRB259R4c(Ku(`47KjS157h0iZbIFt*#?1{i_ZTPD zE1_h5Lu0c6&iqRC^Cs1qOjhfVn#|W|G})lqY4TDPk;!7sK8%wlA5^u677A^QgE|9m z3MykFDenbNYB(_YUbVtxHDfClP$zJ5L#xtchsFbw4`#$uEnkB29XR!m=1WlV18U;j z40#Q1=Ot7NO@37+#tY4Ah|CAhY%xs|i~^GztL#b7q?4KsaA$)1ZJ 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 512a3a8257bf9bee807cbc949ff731c1d38ca484..a010b6241b6320fa503f2b0f07e5468604a6fab6 100644 GIT binary patch literal 6669 zcmWIWc6a1rU|_hT_e-&*htoCLx#Sqnyy^ZqlcT=9xzz6Cck1x*pvT|lnF}z$0W$*w z!$d}BtC-N@)S}{;#FX63ycoT_()84ln1aOQ?8Nlc;+WjbCFqdp)fu_P_OD7P3SFM*H`&&)G6(hEvW&nzw} zssu@D6qV+cWag&oKu(0(nUmDifTVTw0V_QmN;doSa%*?3|xhQk0(qQlW^hBA_TUFFCUyF-I>v zGcP5-9304?yd+N`34%-mVNmj&NO?Y^cCi3*7RY%Zub>wTprp*hz`(%Ez`(%Az`(%I zz`y`1=mvFh0rL=uM)nY>xWMKiK?VkfTmo^3D6PxEd8r7Rmtsux%=HZLm(8fT4^*0f zTm}kqA!unL3@uGW7#J9^xlokCf(}}B5L3{>oQ7V|iQ#aXI0FMiIf1}~mchlayp{;g zYsrwjhC2k&GayP9MGi&@v|yCP;Z`XI28MbP-C6+8_2rOUPrQ3E3Jhd7OQX4228Wwv z85kHql}t4OcN0jU&?2}vrZg|Jg4E;+N(Iu2_U3C#qk4H3QKyv!IAJrg~H z7^nfoF>n)NAeC!Oab6}U<-lS=1DbL)p@oJP)EnAp<+Kje8@f<$=rJ%b)DnmVs3X9> zz*19_O@$J71C-$&BnwO>#)QFqCs^cto>>UbvSw@Zv}O@HPqptEL=#{qkD5;^yx*H!j7JmLWL zh$E6mdPwyMuF4DU8RXgk?i+YF2<{uKH5n)=focWxn#>7@kDQ@CLQYcMRQD0y^hKVB zTyS{E73v}6v<3d^Bn&x!QFR1j%PfpBXDJd#V6>>=}F3AK{r1^QlrAeUB(?j%&i5WF9 zCafI8dpNt^tl;i~KHfmY>@LV4oPa5*4K<9I;F81{kofz&9cXo~eg1tF=?0@qDeqgos_Wx8Y*r6!l;7gZ|4 z+=SCq!5~O0z%wN^uOu@qGqs2XZY!s<7q=tdf9#7u$;Fq?5{ zW-ianqhJt;72HCG2Mox6kYOl&P{uAx)rYo_*&tlFLXdMH3elQzQpgTQRlx~wev>_H zB@Z(l?9d7`6EtVS<-zX5Y$i*<^rOqOgWOhOW`gQ6%tkIW?V}Z!#d(=I3BhSlUI>2@9@bkgs7G z10fG9$uLcZYXn6E7K5>eb4pGQJe+Z8bbtpFQdWh#$N=Udc;SUna>5P3Y5@_=QT#46 uh;fCx5EQ7m0}bv(tmP}*6atZo-xL?PTd;+eAx3Cnbqd@NtRY5ZlNSJ7AuI3z delta 190 zcmeA*S;%b~;O*|n#lXO@(etu@Typ-Ese6>;b1p`BwO^Pjl;O<#GfdN^Voi>|>1$>N zIAEIW!!m8+>8qk}5h#O+fq_A5@qGOE~A@j*?7QT&@N1mqYe&l8*u0G{b13;+NC 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 5b87512df1bbfad79f3eb9ada131bd69871e8ebe..bd1b30cc891802ff5e893bf14348aacda4f3677a 100644 GIT binary patch delta 14 VcmZ3%yn=ayKO@r?naP2S;Q%9l1Z4mK delta 14 VcmZ3%yn=ayKO<8S|Kvc%Z~!5)1Qq}Q diff --git a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.dll b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.dll index 6965363465662ec65019a97b7cc8c75852ec4ddd..a279d83de68189d6809cd5e11a348838c08ef0c0 100644 GIT binary patch literal 17920 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 KI_f;?hX4RWvZ^ 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 delta 2458 zcmdn9mGQ-L#tA0%GgufHlp1Fvu`4sDULs7#J8F85kJ285kH?85kIN z7#J9Yp=^*w$%!|W>p_wrUFr-B3>*v$3<6MG?83}2)rE!Oz8f` zA=HVT~^f10%yW7eTykM#xaq>k;Nr^2kmAb7Q18mf zFx8cjVWlf5xELAEx-v4naAjn8@5;#V&6SbiFIb$3LCKwo!Pp(7hMA$%gPEb*gPCEH z2Q$M84;F@4PZoxDPZow5o*;P;W@QlaVr7u@Vr5Y9Vr5VVg&G3`gB=3{8^awihn-=! zH#@^cZ+3=9-s}vYz1bOld9yPx`mi%__<#(6VP*z?FrS4%!Dn&-)0}!ma2PW)fIJ6M zB*(zOz{|kQzzU89P;5XV2*zh;U|`?}#{(!95W$Wt4~k3}9~3RZ46JbTK#?ti;MX(Q zFfcHPF|flGfZ|Xb$pVmt5=in=3=9mCNPJKjNilH2^{-%HV30=QgA$Gm5?_mffkB=D z6mlRB)H5)EEKq<8KzsxW6*g!HfaI0XlmW!52T3!5-2>v9xH5r-SG$2SIU~bUcQ!Epi3iA1kVT9P!Cs(j z2MSh31_N(Ue1a@gXJBMtWKd^dVmQa}fPs}E-j#t7L@Izu2S!$gWv&T~tPH1I8<;?B z1!h);TOJCU%xnyIJrbBfLJiEU3~M|anAsRMdM;pLWsve_U`2{7J`FX`)kqm1S3seP4Fq zcGva(hQkb?U|`|Ygiv~5ipv;GajStT9(6FqtIHN#SzMBuD+8hQf>V=Ai!w_pCpWn8 zPHyuv5aVY&z~J%#L_B9az~IUv#mK77PkyWS^WK zWG4m=a||;l?+%hx#N#86e+L*m*(d)D@)6=-U|fWdSBXr-U}5j&0TM&<{N!U{%J`D6 zSNQ=3uV#f3GntJy;+*qu>1*tlACg*8qRV)I0qk^eT%v`sw+hH77eO9_r1i;$5zL2(g28pClzTOt zf+FObQjhJH-4d3$Fst{?YmXaVC;P4~nA{g3W-GwWz`!WY$;cqf#32HT53qnDCnJM0 z6Ne~B0G#$UAcM7> cq$9DaeR(E3MVaAq0Vv`5mQ9`+rOe0x0P#@Vb^rhX 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