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

优化部分框架

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

代码差异

3 个文件 +18 -13
Modified XFEExtension.NetCore.ServerInteractive/Models/ServerModels/ServerCoreReturnArgs.cs +15 -10
@@ -25,24 +25,29 @@ public class ServerCoreReturnArgs : Exception
25 25 /// </summary>
26 26 public required CyberCommRequestEventArgs Args { get; set; }
27 27
28 /// <summary>
29 /// 正常结束与客户端的通讯
30 /// </summary>
31 public void OK() => Args.Close();
32
28 33 /// <summary>
29 34 /// 结束与客户端的通讯
30 35 /// </summary>
31 /// <param name="code"></param>
32 public void Close(HttpStatusCode code = HttpStatusCode.OK)
33 {
34 StatusCode = code;
35 Handled = true;
36 Args.Close(StatusCode);
37 throw this;
38 }
36 /// <param name="message"></param>
37 public async Task Close(string message) => await Args.ReplyAndClose(message);
39 38
40 39 /// <summary>
41 40 /// 以异常结束与客户端的通讯
42 41 /// </summary>
43 42 /// <param name="message"></param>
44 43 /// <param name="code"></param>
45 public void Error(string message, HttpStatusCode code = HttpStatusCode.InternalServerError) => throw GetError(message, code);
44 public async Task Error(string message, HttpStatusCode code = HttpStatusCode.BadRequest)
45 {
46 ReturnMessage = message;
47 Handled = true;
48 StatusCode = code;
49 await Args.ReplyAndClose(message, code);
50 }
46 51
47 52 /// <summary>
48 53 /// 以异常结束与客户端的通讯
@@ -50,7 +55,7 @@ public class ServerCoreReturnArgs : Exception
50 55 /// <param name="message"></param>
51 56 /// <param name="code"></param>
52 57 /// <param name="handled"></param>
53 public ServerCoreReturnArgs GetError(string message, HttpStatusCode code = HttpStatusCode.InternalServerError, bool handled = false)
58 public ServerCoreReturnArgs Error(string message, HttpStatusCode code = HttpStatusCode.BadRequest, bool handled = false)
54 59 {
55 60 ReturnMessage = message;
56 61 Handled = handled;
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/IpBannerService.cs +1 -1
@@ -46,7 +46,7 @@ public class IpBannerService : ServerCoreUserServiceBase
46 46 case "remove_bannedIp":
47 47 Console.WriteLine($"删除禁止的IP地址请求 移除:{Json["bannedIp"]}");
48 48 UserHelper.ValidatePermission(Json["session"], Json["computerInfo"], ReturnArgs.Args.ClientIP, RemovePermission, GetEncryptedUserLoginModelFunction(), GetUserFunction(), ReturnArgs);
49 var targetIp = ServerBaseProfile.BannedIPAddressList.FirstOrDefault(ip => ip.IPAddress == Json["bannedIp"].ToString()) ?? throw ReturnArgs.GetError("无IP地址传入", HttpStatusCode.BadRequest);
49 var targetIp = ServerBaseProfile.BannedIPAddressList.FirstOrDefault(ip => ip.IPAddress == Json["bannedIp"].ToString()) ?? throw ReturnArgs.Error("无IP地址传入", HttpStatusCode.BadRequest);
50 50 await Close(ServerBaseProfile.BannedIPAddressList.Remove(targetIp).ToString());
51 51 break;
52 52 default:
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/UserReloginService.cs +2 -2
@@ -22,12 +22,12 @@ public class UserReloginService<T> : ServerCoreUserLoginServiceBase<T> where T :
22 22 if (session.IsNullOrWhiteSpace()) Error("Session值不能为空");
23 23 if (computerInfo.IsNullOrWhiteSpace()) Error("电脑信息不能为空");
24 24 var split = session.Split('|');
25 if (GetEncryptedUserLoginModelFunction().FirstOrDefault(user => user.UserLoginModel.UID == split[0]) is not EncryptedUserLoginModel encryptedUserLoginModel) throw ReturnArgs.GetError("Session值不正确或已过期", HttpStatusCode.Forbidden);
25 if (GetEncryptedUserLoginModelFunction().FirstOrDefault(user => user.UserLoginModel.UID == split[0]) is not EncryptedUserLoginModel encryptedUserLoginModel) throw ReturnArgs.Error("Session值不正确或已过期", HttpStatusCode.Forbidden);
26 26 if (encryptedUserLoginModel.UserLoginModel.ComputerInfo != computerInfo) Error("电脑信息不匹配");
27 27 var userLoginModel = UserHelper.Decrypt<UserLoginModel>(encryptedUserLoginModel.Key, split[1]);
28 28 if (userLoginModel.UID.IsNullOrWhiteSpace() || userLoginModel.UID != encryptedUserLoginModel.UserLoginModel.UID)
29 29 Error("登录用户ID不匹配");
30 var user = UserHelper.GetUser(userLoginModel.UID, GetUserFunction()) ?? throw ReturnArgs.GetError("用户ID未注册", HttpStatusCode.Forbidden);
30 var user = UserHelper.GetUser(userLoginModel.UID, GetUserFunction()) ?? throw ReturnArgs.Error("用户ID未注册", HttpStatusCode.Forbidden);
31 31 if (userLoginModel.LastIPAddress != ReturnArgs.Args.ClientIP) Error("IP地址不匹配");
32 32 if (userLoginModel.LastIPAddress != encryptedUserLoginModel.UserLoginModel.LastIPAddress) Error("IP地址不匹配");
33 33 if (userLoginModel.EndDateTime < DateTime.Now) Error("登录已过期");