XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.ServerInteractive

[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension.NetCore.ServerInteractive

重命名 ComputerInfo 为 DeviceInfo 以统一字段命名

本次提交将所有涉及“电脑信息”的字段、参数、属性、方法签名及注释中的 ComputerInfo 统一重命名为 DeviceInfo,涵盖接口、实现类、模型、请求体、校验逻辑、日志输出等。此更名提升了代码语义准确性和一致性,不影响原有功能。csproj 包说明文档也已同步更新。

2a24464
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

20 个文件 +78 -61
Modified XFEExtension.NetCore.ServerInteractive/Implements/Requester/XFERequestServiceBase.cs +8 -1
@@ -8,11 +8,18 @@ namespace XFEExtension.NetCore.ServerInteractive.Implements.Requester;
8 8 /// </summary>
9 9 public abstract class XFERequestServiceBase : IXFERequestService
10 10 {
11 /// <inheritdoc/>
12 public string Execute { get; set; } = string.Empty;
13 /// <inheritdoc/>
14 public string DeviceInfo { get; set; } = string.Empty;
15 /// <inheritdoc/>
16 public object[] Parameters { get; set; } = [];
11 17 /// <inheritdoc/>
12 18 public XFEClientRequester XFEClientRequester { get; set; }
13 19
14 20 /// <inheritdoc/>
15 21 public abstract object AnalyzeResponse(string response);
22
16 23 /// <inheritdoc/>
17 public abstract object PostRequest(string execute, params object[] parameters);
24 public abstract object PostRequest();
18 25 }
Modified XFEExtension.NetCore.ServerInteractive/Interfaces/Requester/IRequesterBase.cs +1 -1
@@ -19,7 +19,7 @@ public interface IRequesterBase
19 19 /// <summary>
20 20 /// 电脑信息
21 21 /// </summary>
22 string ComputerInfo { get; set; }
22 string DeviceInfo { get; set; }
23 23 /// <summary>
24 24 /// 请求消息返回事件
25 25 /// </summary>
Modified XFEExtension.NetCore.ServerInteractive/Interfaces/Requester/IXFERequestService.cs +13 -3
@@ -5,13 +5,23 @@
5 5 /// </summary>
6 6 public interface IXFERequestService : IRequestServiceBase
7 7 {
8 /// <summary>
9 /// 待请求的方法(如 check_connect)
10 /// </summary>
11 string Execute { get; set; }
12 /// <summary>
13 /// 设备信息
14 /// </summary>
15 string DeviceInfo { get; set; }
16 /// <summary>
17 /// 待请求的方法的参数列表
18 /// </summary>
19 object[] Parameters { get; set; }
8 20 /// <summary>
9 21 /// 提交请求体
10 22 /// </summary>
11 /// <param name="execute">执行的操作名称</param>
12 /// <param name="parameters"></param>
13 23 /// <returns></returns>
14 object PostRequest(string execute, params object[] parameters);
24 object PostRequest();
15 25 /// <summary>
16 26 /// 接收到返回后解析
17 27 /// </summary>
Modified XFEExtension.NetCore.ServerInteractive/Models/UserModels/UserLoginModel.cs +1 -1
@@ -16,7 +16,7 @@ public class UserLoginModel
16 16 /// <summary>
17 17 /// 电脑配置信息
18 18 /// </summary>
19 public string ComputerInfo { get; set; } = string.Empty;
19 public string DeviceInfo { get; set; } = string.Empty;
20 20 /// <summary>
21 21 /// 登录到期时间
22 22 /// </summary>
Modified XFEExtension.NetCore.ServerInteractive/Options/XFEClientRequesterOptions.cs +1 -1
@@ -18,7 +18,7 @@ public class XFEClientRequesterOptions
18 18 /// <summary>
19 19 /// 电脑信息
20 20 /// </summary>
21 public string ComputerInfo { get; set; } = DeviceHelper.GetUniqueHardwareId();
21 public string DeviceInfo { get; set; } = DeviceHelper.GetUniqueHardwareId();
22 22 /// <summary>
23 23 /// 自动反转义响应内容(针对XFERequestService和XFEClientInstanceRequest的响应内容进行反转义处理,默认为true)
24 24 /// </summary>
Modified XFEExtension.NetCore.ServerInteractive/Utilities/DataTable/XFEDataTable.cs +4 -4
@@ -133,7 +133,7 @@ public class XFEDataTable<T> : IXFEDataTable where T : IIdModel
133 133 {
134 134 case "get":
135 135 Console.Write($"【{r.Args.ClientIP}】获取{TableShowName}列表请求");
136 UserHelper.ValidatePermission(requestJsonNode["session"], requestJsonNode["computerInfo"], r.Args.ClientIP, GetPermissionLevel, GetEncryptedUserLoginModelFunction(), GetUsersFunction(), r);
136 UserHelper.ValidatePermission(requestJsonNode["session"], requestJsonNode["deviceInfo"], r.Args.ClientIP, GetPermissionLevel, GetEncryptedUserLoginModelFunction(), GetUsersFunction(), r);
137 137 List<T> tableList = [.. GetTableFunction()];
138 138 var pageCount = requestJsonNode["pageCount"]?.GetValue<int>() ?? -1;
139 139 if (pageCount == -1)
@@ -165,7 +165,7 @@ public class XFEDataTable<T> : IXFEDataTable where T : IIdModel
165 165 throw new StopAction(() => { }, $"\n无法使用Json转换目标{TableShowName}信息");
166 166 }
167 167 Console.Write($":{item.Id}");
168 UserHelper.ValidatePermission(requestJsonNode["session"], requestJsonNode["computerInfo"], r.Args.ClientIP, AddPermissionLevel, GetEncryptedUserLoginModelFunction(), GetUsersFunction(), r);
168 UserHelper.ValidatePermission(requestJsonNode["session"], requestJsonNode["deviceInfo"], r.Args.ClientIP, AddPermissionLevel, GetEncryptedUserLoginModelFunction(), GetUsersFunction(), r);
169 169 if (item.Id.IsNullOrWhiteSpace())
170 170 {
171 171 statusCode = HttpStatusCode.BadRequest;
@@ -180,7 +180,7 @@ public class XFEDataTable<T> : IXFEDataTable where T : IIdModel
180 180 Console.Write($"【{r.Args.ClientIP}】删除{TableShowName}请求");
181 181 var id = requestJsonNode["id"]?.ToString();
182 182 Console.Write($":{id}");
183 UserHelper.ValidatePermission(requestJsonNode["session"], requestJsonNode["computerInfo"], r.Args.ClientIP, RemovePermissionLevel, GetEncryptedUserLoginModelFunction(), GetUsersFunction(), r);
183 UserHelper.ValidatePermission(requestJsonNode["session"], requestJsonNode["deviceInfo"], r.Args.ClientIP, RemovePermissionLevel, GetEncryptedUserLoginModelFunction(), GetUsersFunction(), r);
184 184 if (id.IsNullOrWhiteSpace())
185 185 {
186 186 statusCode = HttpStatusCode.BadRequest;
@@ -203,7 +203,7 @@ public class XFEDataTable<T> : IXFEDataTable where T : IIdModel
203 203 statusCode = HttpStatusCode.BadRequest;
204 204 throw new StopAction(() => { }, $"\n{TableShowName}ID不能为空");
205 205 }
206 UserHelper.ValidatePermission(requestJsonNode["session"], requestJsonNode["computerInfo"], r.Args.ClientIP, ChangePermissionLevel, GetEncryptedUserLoginModelFunction(), GetUsersFunction(), r);
206 UserHelper.ValidatePermission(requestJsonNode["session"], requestJsonNode["deviceInfo"], r.Args.ClientIP, ChangePermissionLevel, GetEncryptedUserLoginModelFunction(), GetUsersFunction(), r);
207 207 Change(item);
208 208 r.Args.Close();
209 209 break;
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Extensions/XFEClientRequesterBuilderExtensions.cs +10 -10
@@ -32,41 +32,41 @@ public static class XFEClientRequesterBuilderExtensions
32 32 /// 添加日志请求
33 33 /// </summary>
34 34 /// <returns></returns>
35 public XFEClientRequesterBuilder AddLogRequest() => xFEClientRequesterBuilder.AddRequest("get_log", static (session, computerInfo, parameters) => new
35 public XFEClientRequesterBuilder AddLogRequest() => xFEClientRequesterBuilder.AddRequest("get_log", static (session, deviceInfo, parameters) => new
36 36 {
37 37 execute = "get_log",
38 38 session,
39 computerInfo,
39 deviceInfo,
40 40 startDateTime = parameters[0],
41 41 endDateTime = parameters[1]
42 }, static response => response).AddRequest("clear_log", static (session, computerInfo, _) => new
42 }, static response => response).AddRequest("clear_log", static (session, deviceInfo, _) => new
43 43 {
44 44 execute = "clear_log",
45 45 session,
46 computerInfo
46 deviceInfo
47 47 }, static response => response);
48 48
49 49 /// <summary>
50 50 /// 添加IP封禁请求
51 51 /// </summary>
52 52 /// <returns></returns>
53 public XFEClientRequesterBuilder AddBannedIPRequest() => xFEClientRequesterBuilder.AddRequest("get_bannedIPList", static (session, computerInfo, _) => new
53 public XFEClientRequesterBuilder AddBannedIPRequest() => xFEClientRequesterBuilder.AddRequest("get_bannedIPList", static (session, deviceInfo, _) => new
54 54 {
55 55 execute = "get_bannedIPList",
56 56 session,
57 computerInfo
58 }, static response => JsonSerializer.Deserialize<List<IPAddressInfo>>(response, JsonSerializerOptions)!).AddRequest("add_bannedIP", static (session, computerInfo, parameters) => new
57 deviceInfo
58 }, static response => JsonSerializer.Deserialize<List<IPAddressInfo>>(response, JsonSerializerOptions)!).AddRequest("add_bannedIP", static (session, deviceInfo, parameters) => new
59 59 {
60 60 execute = "add_bannedIP",
61 61 session,
62 computerInfo,
62 deviceInfo,
63 63 bannedIP = parameters[0],
64 64 notes = parameters[1]
65 }, static response => response).AddRequest("remove_bannedIP", static (session, computerInfo, parameters) => new
65 }, static response => response).AddRequest("remove_bannedIP", static (session, deviceInfo, parameters) => new
66 66 {
67 67 execute = "remove_bannedIP",
68 68 session,
69 computerInfo,
69 deviceInfo,
70 70 bannedIP = parameters[0]
71 71 }, static response => bool.Parse(response));
72 72
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Helpers/UserHelper.cs +10 -10
@@ -26,18 +26,18 @@ public static class UserHelper
26 26 /// 获取用户(通过Session)
27 27 /// </summary>
28 28 /// <param name="session"></param>
29 /// <param name="computerInfo"></param>
29 /// <param name="deviceInfo"></param>
30 30 /// <param name="ipAddress"></param>
31 31 /// <param name="encryptedUserLoginModels"></param>
32 32 /// <param name="userInfoList"></param>
33 33 /// <param name="user"></param>
34 34 /// <returns></returns>
35 public static UserOperateResult GetUser(string session, string computerInfo, string ipAddress, IEnumerable<EncryptedUserLoginModel> encryptedUserLoginModels, IEnumerable<IUserFaceInfo> userInfoList, out IUserInfo? user)
35 public static UserOperateResult GetUser(string session, string deviceInfo, string ipAddress, IEnumerable<EncryptedUserLoginModel> encryptedUserLoginModels, IEnumerable<IUserFaceInfo> userInfoList, out IUserInfo? user)
36 36 {
37 37 user = null;
38 38 session = Regex.Unescape(session);
39 39 var split = session.Split('|');
40 if (encryptedUserLoginModels.FirstOrDefault(user => user.UserLoginModel.Uid == split[0]) is not { } encryptedUserLoginModel || encryptedUserLoginModel.UserLoginModel.ComputerInfo != computerInfo)
40 if (encryptedUserLoginModels.FirstOrDefault(user => user.UserLoginModel.Uid == split[0]) is not { } encryptedUserLoginModel || encryptedUserLoginModel.UserLoginModel.DeviceInfo != deviceInfo)
41 41 return UserOperateResult.LoginExpired;
42 42 if (Decrypt<UserLoginModel>(encryptedUserLoginModel.Key, split[1]) is not { } targetUserLoginModel || encryptedUserLoginModel.UserLoginModel.Uid != targetUserLoginModel.Uid)
43 43 return UserOperateResult.UserNotFound;
@@ -134,17 +134,17 @@ public static class UserHelper
134 134 /// 校验用户权限(使用Session)
135 135 /// </summary>
136 136 /// <param name="sessionId"></param>
137 /// <param name="computerInfo"></param>
137 /// <param name="deviceInfo"></param>
138 138 /// <param name="ipAddress"></param>
139 139 /// <param name="requiredPermissionLevel"></param>
140 140 /// <param name="encryptedUserLoginModels"></param>
141 141 /// <param name="userInfoList"></param>
142 142 /// <returns></returns>
143 public static UserOperateResult ValidateUserPermission(string? sessionId, string? computerInfo, string ipAddress, int requiredPermissionLevel, IEnumerable<EncryptedUserLoginModel> encryptedUserLoginModels, IEnumerable<IUserInfo> userInfoList)
143 public static UserOperateResult ValidateUserPermission(string? sessionId, string? deviceInfo, string ipAddress, int requiredPermissionLevel, IEnumerable<EncryptedUserLoginModel> encryptedUserLoginModels, IEnumerable<IUserInfo> userInfoList)
144 144 {
145 if (sessionId.IsNullOrWhiteSpace() || computerInfo.IsNullOrWhiteSpace())
145 if (sessionId.IsNullOrWhiteSpace() || deviceInfo.IsNullOrWhiteSpace())
146 146 return UserOperateResult.UserNotFound;
147 var result = GetUser(sessionId, computerInfo, ipAddress, encryptedUserLoginModels, userInfoList, out var user);
147 var result = GetUser(sessionId, deviceInfo, ipAddress, encryptedUserLoginModels, userInfoList, out var user);
148 148 if (result != UserOperateResult.Success)
149 149 return result;
150 150 return user!.PermissionLevel < requiredPermissionLevel ? UserOperateResult.PermissionDenied : UserOperateResult.Success;
@@ -201,16 +201,16 @@ public static class UserHelper
201 201 /// 校验权限(使用Session)
202 202 /// </summary>
203 203 /// <param name="sessionId"></param>
204 /// <param name="computerInfo"></param>
204 /// <param name="deviceInfo"></param>
205 205 /// <param name="ipAddress"></param>
206 206 /// <param name="requiredPermissionLevel"></param>
207 207 /// <param name="encryptedUserLoginModels"></param>
208 208 /// <param name="userInfoList"></param>
209 209 /// <param name="r"></param>
210 210 /// <exception cref="StopAction"></exception>
211 public static void ValidatePermission(string? sessionId, string? computerInfo, string ipAddress, int requiredPermissionLevel, IEnumerable<EncryptedUserLoginModel> encryptedUserLoginModels, IEnumerable<IUserInfo> userInfoList, ServerCoreReturnArgs r)
211 public static void ValidatePermission(string? sessionId, string? deviceInfo, string ipAddress, int requiredPermissionLevel, IEnumerable<EncryptedUserLoginModel> encryptedUserLoginModels, IEnumerable<IUserInfo> userInfoList, ServerCoreReturnArgs r)
212 212 {
213 var result = ValidateUserPermission(sessionId, computerInfo, ipAddress, requiredPermissionLevel, encryptedUserLoginModels, userInfoList);
213 var result = ValidateUserPermission(sessionId, deviceInfo, ipAddress, requiredPermissionLevel, encryptedUserLoginModels, userInfoList);
214 214 if (result != UserOperateResult.Success)
215 215 throw r.Error(OutPutResult(result), HttpStatusCode.Forbidden);
216 216 }
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/ClearLogRequestService.cs +1 -1
@@ -15,6 +15,6 @@ public class ClearLogRequestService : XFERequestServiceBase
15 15 {
16 16 execute,
17 17 session = XFEClientRequester.Session,
18 computerInfo = XFEClientRequester.ComputerInfo
18 deviceInfo = XFEClientRequester.DeviceInfo
19 19 };
20 20 }
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/GetLogRequestService.cs +1 -1
@@ -15,7 +15,7 @@ public class GetLogRequestService : XFERequestServiceBase
15 15 {
16 16 execute,
17 17 session = XFEClientRequester.Session,
18 computerInfo = XFEClientRequester.ComputerInfo,
18 deviceInfo = XFEClientRequester.DeviceInfo,
19 19 startDateTime = parameters[0],
20 20 endDateTime = parameters[1],
21 21 };
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/LoginRequestService.cs +1 -1
@@ -29,7 +29,7 @@ public class LoginRequestService<T> : XFERequestServiceBase where T : IUserFaceI
29 29 public override object PostRequest(string execute, params object[] parameters) => new
30 30 {
31 31 execute,
32 computerInfo = XFEClientRequester.ComputerInfo,
32 deviceInfo = XFEClientRequester.DeviceInfo,
33 33 account = parameters[0],
34 34 password = parameters[1]
35 35 };
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/ReloginRequestService.cs +1 -1
@@ -23,6 +23,6 @@ public class ReloginRequestService<T> : XFERequestServiceBase where T : IUserFac
23 23 {
24 24 execute,
25 25 session = XFEClientRequester.Session,
26 computerInfo = XFEClientRequester.ComputerInfo,
26 deviceInfo = XFEClientRequester.DeviceInfo,
27 27 };
28 28 }
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/TableRequester.cs +5 -5
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/XFEClientRequester.cs +2 -2
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Requester/XFEClientRequesterBuilder.cs +3 -3
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/CoreLogService.cs +2 -2
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/IpBannerService.cs +3 -3
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/UserLoginService.cs +6 -6
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/UserReloginService.cs +4 -4
Modified XFEExtension.NetCore.ServerInteractive/XFEExtension.NetCore.ServerInteractive.csproj +1 -1