From fb61c971e9df2037e237eb4b7e36401bedf17791 Mon Sep 17 00:00:00 2001 From: Garrritt McCune Date: Tue, 5 Jan 2021 21:52:09 -0600 Subject: [PATCH] Updated the Startup.cs to forward headers, hopefully this will help with making sure remote IPs are correctly retrieved. --- .vs/SecureCore/v16/.suo | Bin 61952 -> 63488 bytes SecureCore/AppSettingsManager.cs | 33 ++++++++++++++++++ SecureCore/Authentication/PasswordManager.cs | 4 +++ SecureCore/Authentication/SessionManager.cs | 23 ++++++++++-- SecureCore/Controllers/AuthController.cs | 12 ++++--- SecureCore/Startup.cs | 16 +++++---- SecureCore/appsettings.json | 4 ++- .../SecureCore.csproj.CoreCompileInputs.cache | 1 - .../SecureCore.csprojAssemblyReference.cache | Bin 424 -> 0 bytes .../obj/Debug/netcoreapp3.1/SecureCore.dll | Bin 19968 -> 0 bytes .../obj/Debug/netcoreapp3.1/SecureCore.pdb | Bin 24396 -> 0 bytes 11 files changed, 79 insertions(+), 14 deletions(-) create mode 100644 SecureCore/AppSettingsManager.cs delete mode 100644 SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csproj.CoreCompileInputs.cache delete mode 100644 SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csprojAssemblyReference.cache delete mode 100644 SecureCore/obj/Debug/netcoreapp3.1/SecureCore.dll delete mode 100644 SecureCore/obj/Debug/netcoreapp3.1/SecureCore.pdb diff --git a/.vs/SecureCore/v16/.suo b/.vs/SecureCore/v16/.suo index c4dc54f5e0effa8a7cfe27dce544e924b74aa863..5da4668f3880482e9acfb3460ca1cf35262164eb 100644 GIT binary patch delta 4174 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 delta 3663 zcmZqpz})bJd4j>@3;8UQ9g0{)83Y&@lo=Qpm>C!t{{8>|pMimafpK!9q43589wttK z)CZwSkFGJgO)h2fo9xVN$as75SEhP4Jq8AbJeJ8-%vEf`3=9nKcqjj2R;w3aU|`^4 zU|`^5U|{%<1e6#U7=#!Y7}TJ4NH8!k2r@7*h%+!S2t(CoFfcIaK;@+w7#PZ-;xJ<} zk@&g{3=C{Ye0~N7hBO8SIR*|SK@kQ924@Ba1`Vi~D9BS26KojuC-ZXZPqtC#V2qvY z%BgM|1GP1dfq@~Ofq@}`fq@|js!5%Jfgy!~fgzQFfkBdifgzoNfkB&rfkA%qLQZu? zDUgwj$slrKg1{uE9L@)i%OVn?;Z@Ig9WAUJAz=jyVnhIOGcYjx{r~?zE7Tbv56eNV z2eCnzhk=2Cmw|yn31SroFDT>;7#J7~85kHcCa>j?_63D4dKj@F86yS>BL;S8ID?GE z2qLHxG$GcQP%o%Niy0Ug%8;A`ie6a2ZQ}A^6a=NcD+~+_SD|kBH+dt6H0M1A28R0} zk%@ubn>lzKm`yR%{r~^}1_J}bO$G*rTOgJH|NjT60r?L}ck?8HFO1hFe-)@_yga#7 zu%0J?fq?-OKA^~$BygCM5ySx{;K}llijxhP*pXE;22B1c?8ga?dQf79s|lK1DpJoF zIQgqcJ)`&JQt|(6K@1EG4x*E*Bz`eEPA--7<7AM9MjlKPs{;cA1JmT6!qtofwbwH` zZ2l_A%`{2s@MLEt+fC9;jFXwM8`ESL zC7aC+Mh(o9IdUx~A1H8{Y-gY~Ip-{gU@}80Loq`PgCj#JLkU9$L+a%JU$;w#G88kU zG88csGgRoRg}8s1?6z`-;sX^ytAA{h8TaciKJcDVKyK$J{bJv<$<=M*P0ZKQS52O9 zwqUZu^8<_GSSBfyfW7`7;%#(#T;HSPO>|}0xGPKym)~F6o8$ZLLuVJ0 z&HR3bjBW*>l9+)3T&Rh@uWim*8J*zQq3hIl_PPF1f89lywYpC7D@~svS3=2!?a05jcKx) z-6HgqaUPVISivb{^H0}PjGT<_Xz7Vv24pJ(!{oqo>o>2=^hbI~Gb$%4M1C zQYbNbQne1tgLnV`PhRldW>T?;P7y;sLk>d@I0fi2Br|{t5KtKgDhffgBg8~7IoYAu zh(Dj9h#{3hkHMKCpCONdV{&7$GBXE*$YcQnk^R|TPkX0udSqKvl5RX1guh8O3}+B4Dg_ppb!q z!H;oCBqM{vfdN6r|+?;lCKaC57FYt(fj zKa=P>WgqUo>!gB7z&KgpvH?_;+T;t@ z$|mzoSJ>R}=l~<5_~h7&nUftZhfO-~FnQBXi^=CMb4+eHe_(RJ_YIrft_m(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Latest); + //For more details on this setup consult the docs here: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-3.1 + services.Configure(options => + { + options.ForwardedHeaders = + ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto; + }); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. @@ -38,6 +40,8 @@ namespace SecureCore app.UseDeveloperExceptionPage(); } + app.UseForwardedHeaders(); + app.UseRouting(); app.UseAuthorization(); diff --git a/SecureCore/appsettings.json b/SecureCore/appsettings.json index e77600c..dbaf363 100644 --- a/SecureCore/appsettings.json +++ b/SecureCore/appsettings.json @@ -7,5 +7,7 @@ } }, "AllowedHosts": "*", - "ConnectionString": "Server=DESKTOP-OEDDVKC\\SQLEXPRESS;Database=main;Integrated Security=true;" + "ConnectionStrings": { + "MainDataConnectionString": "Server=DESKTOP-OEDDVKC\\SQLEXPRESS;Database=main;Integrated Security=true;" + } } diff --git a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csproj.CoreCompileInputs.cache b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csproj.CoreCompileInputs.cache deleted file mode 100644 index 20b0a63..0000000 --- a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csproj.CoreCompileInputs.cache +++ /dev/null @@ -1 +0,0 @@ -390c9f5585bc7dcf8f0c5f65f443d23f17063571 diff --git a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csprojAssemblyReference.cache b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.csprojAssemblyReference.cache deleted file mode 100644 index 387fd51b9dcfe8ed0bc23f2577950a05b5ac5ec7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 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 sfjZSjAI0r9`tU%o@kh^r$c{B(C0DiaZ#Q*>R diff --git a/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.pdb b/SecureCore/obj/Debug/netcoreapp3.1/SecureCore.pdb deleted file mode 100644 index 70585a7f9f91bb3e320d8bbdacc9f40ffc403ab8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24396 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 QlLU8dQY^W8?plcq0A6FRf&c&j