XFEExtension.NetCore.ServerInteractive
[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFEExtension.NetCore.ServerInteractive/Implements/Requester/XFERequestServiceBase.cs
+8
-1
Modified
XFEExtension.NetCore.ServerInteractive/Interfaces/Requester/IRequesterBase.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Interfaces/Requester/IXFERequestService.cs
+13
-3
Modified
XFEExtension.NetCore.ServerInteractive/Models/UserModels/UserLoginModel.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Options/XFEClientRequesterOptions.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/DataTable/XFEDataTable.cs
+4
-4
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Extensions/XFEClientRequesterBuilderExtensions.cs
+10
-10
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Helpers/UserHelper.cs
+10
-10
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/ClearLogRequestService.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/GetLogRequestService.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/LoginRequestService.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Requester/Services/ReloginRequestService.cs
+1
-1
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
XFEstudio/XFEExtension.NetCore.ServerInteractive
重命名 ComputerInfo 为 DeviceInfo 以统一字段命名
本次提交将所有涉及“电脑信息”的字段、参数、属性、方法签名及注释中的 ComputerInfo 统一重命名为 DeviceInfo,涵盖接口、实现类、模型、请求体、校验逻辑、日志输出等。此更名提升了代码语义准确性和一致性,不影响原有功能。csproj 包说明文档也已同步更新。
2a24464
代码差异
20 个文件
+78
-61
@@ -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
}
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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;
@@ -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
@@ -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
}
@@ -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
}
@@ -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
};
@@ -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
};
@@ -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
}