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/Models/ServerModels/ServerCoreReturnArgs.cs
+15
-10
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/IpBannerService.cs
+1
-1
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/UserReloginService.cs
+2
-2
XFEstudio/XFEExtension.NetCore.ServerInteractive
优化部分框架
ceef7f8
代码差异
3 个文件
+18
-13
@@ -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;
@@ -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:
@@ -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("登录已过期");