using XFEExtension.NetCore.ServerInteractive.Attributes; using XFEExtension.NetCore.ServerInteractive.Profiles; using XFEExtension.NetCore.ServerInteractive.Utilities.Helpers; using XFEExtension.NetCore.StringExtension.Json; namespace XFEExtension.NetCore.ServerInteractive.Utilities.Server.Services.CoreService; /// /// IP封禁服务 /// public partial class IPBannerService : ServerCoreUserServiceBase { /// /// 获取权限 /// public int GetPermission { get; set; } = 0; /// /// 添加权限 /// public int AddPermission { get; set; } = 0; /// /// 移除权限 /// public int RemovePermission { get; set; } = 0; /// /// 获取禁止的IP地址列表 /// [EntryPoint("ip/banned/get")] public async Task GetBannedIPList() { Console.Write("获取禁止的IP地址列表请求"); UserHelper.ValidatePermission(Json?["session"]?.ToString(), Json?["deviceInfo"]?.ToString(), ReturnArgs.ClientIP, GetPermission, GetEncryptedUserLoginModelFunction(), GetUserFunction(), ReturnArgs); await Close(ServerBaseProfile.BannedIPAddressList.ToJson()); } /// /// 添加禁止的IP地址 /// [EntryPoint("ip/banned/add")] public void AddBannedIP() { Console.Write($"添加禁止的IP地址请求 添加:{Json?["bannedIP"]}"); UserHelper.ValidatePermission(Json?["session"]?.ToString(), Json?["deviceInfo"]?.ToString(), ReturnArgs.ClientIP, AddPermission, GetEncryptedUserLoginModelFunction(), GetUserFunction(), ReturnArgs); if (Json?["bannedIP"] is null) throw Error("无IP地址传入"); ServerBaseProfile.BannedIPAddressList.Add(new() { IPAddress = Json?["bannedIP"]?.ToString() ?? string.Empty, Notes = Json?["notes"]?.ToString() }); OK(); } /// /// 移除禁止的IP地址 /// [EntryPoint("ip/banned/remove")] public async Task RemoveBannedIP() { Console.Write($"删除禁止的IP地址请求 移除:{Json?["bannedIP"]}"); UserHelper.ValidatePermission(Json?["session"]?.ToString(), Json?["deviceInfo"]?.ToString(), ReturnArgs.ClientIP, RemovePermission, GetEncryptedUserLoginModelFunction(), GetUserFunction(), ReturnArgs); var targetIP = ServerBaseProfile.BannedIPAddressList.FirstOrDefault(ip => ip.IPAddress == Json?["bannedIP"]?.ToString()) ?? throw Error("无IP地址传入"); await Close(ServerBaseProfile.BannedIPAddressList.Remove(targetIP).ToString()); } }