summaryrefslogtreecommitdiff
path: root/VPNAuth.Server/HttpContextUtils.cs
diff options
context:
space:
mode:
authorTim <contact@bytim.eu>2025-04-18 12:25:59 +0200
committerTim <contact@bytim.eu>2025-04-18 12:25:59 +0200
commit4b2ad030fa381662f4b0c2464e97b0d2c5f6a716 (patch)
treedcc6af3136764322bd779110dcedd35e293d583c /VPNAuth.Server/HttpContextUtils.cs
downloadVPNAuth-4b2ad030fa381662f4b0c2464e97b0d2c5f6a716.tar.xz
VPNAuth-4b2ad030fa381662f4b0c2464e97b0d2c5f6a716.zip
Initial commit
Diffstat (limited to 'VPNAuth.Server/HttpContextUtils.cs')
-rw-r--r--VPNAuth.Server/HttpContextUtils.cs15
1 files changed, 15 insertions, 0 deletions
diff --git a/VPNAuth.Server/HttpContextUtils.cs b/VPNAuth.Server/HttpContextUtils.cs
new file mode 100644
index 0000000..5bba471
--- /dev/null
+++ b/VPNAuth.Server/HttpContextUtils.cs
@@ -0,0 +1,15 @@
+namespace VPNAuth.Server;
+
+public static class HttpContextUtils
+{
+ public static string GetRemoteIpAddress(this HttpContext context)
+ => context.Request.Headers["X-Forwarded-For"].DefaultIfEmpty(context.Connection.RemoteIpAddress!.ToString())
+ .First()!;
+
+ public static ConfigUser? GetUser(this HttpContext context)
+ {
+ var config = Config.Read();
+ if (config.Users == null || config.Users.Count == 0) return null;
+ return config.Users!.Find(user => user.Ips!.Contains(context.GetRemoteIpAddress()));
+ }
+}