summaryrefslogtreecommitdiff
path: root/VPNAuth.Server/HttpContextUtils.cs
diff options
context:
space:
mode:
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()));
+ }
+}