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/CoreService/XFEServerCoreServiceBase.cs
+5
-1
Modified
XFEExtension.NetCore.ServerInteractive/Interfaces/CoreService/IXFEServerCoreServiceBase.cs
+14
-4
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/XFEServerCore.cs
+10
-2
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/XFEServerCoreBuilder.cs
+12
-0
Modified
XFEExtension.NetCore.ServerInteractive/XFEExtension.NetCore.ServerInteractive.csproj
+7
-4
XFEstudio/XFEExtension.NetCore.ServerInteractive
增强核心服务IP处理与接口扩展,升级至1.1.7
本次更新新增了核心服务基类和接口的 ClientIP 与 Handled 属性,支持服务处理过程中获取客户端IP和标记处理状态。XFEServerCore 增加 GetIpFunction 委托,允许自定义IP获取逻辑。XFEServerCoreBuilder 新增 UseCustomIPGetFunction 方法,提升扩展性。服务实例初始化时补充 ClientIP 赋值。版本号升级至 1.1.7,并优化注释与初始化顺序。
789c6f4
代码差异
5 个文件
+48
-11
@@ -12,10 +12,14 @@ namespace XFEExtension.NetCore.ServerInteractive.Implements.CoreService;
12
12
public abstract class XFEServerCoreServiceBase : IXFEServerCoreServiceBase
13
13
{
14
14
/// <inheritdoc/>
15
public XFEServerCore XFEServerCore { get; set; }
15
public bool Handled { get => ReturnArgs.Handled; set => ReturnArgs.Handled = value; }
16
/// <inheritdoc/>
17
public string ClientIP { get; set; } = string.Empty;
16
18
/// <inheritdoc/>
17
19
public string Execute { get; set; } = string.Empty;
18
20
/// <inheritdoc/>
21
public XFEServerCore XFEServerCore { get; set; }
22
/// <inheritdoc/>
19
23
public QueryableJsonNode Json { get; set; }
20
24
/// <inheritdoc/>
21
25
public ServerCoreReturnArgs ReturnArgs { get; set; }
@@ -11,14 +11,24 @@ namespace XFEExtension.NetCore.ServerInteractive.Interfaces.CoreService;
11
11
public interface IXFEServerCoreServiceBase
12
12
{
13
13
/// <summary>
14
/// 服务器核心
14
/// 当前请求的执行语句
15
15
/// </summary>
16
XFEServerCore XFEServerCore { get; set; }
16
string Execute { get; set; }
17
17
18
18
/// <summary>
19
/// 当前请求的执行语句
19
/// 客户端IP地址
20
20
/// </summary>
21
string Execute { get; set; }
21
string ClientIP { get; set; }
22
23
/// <summary>
24
/// 是否已经处理完成
25
/// </summary>
26
bool Handled { get; set; }
27
28
/// <summary>
29
/// 服务器核心
30
/// </summary>
31
XFEServerCore XFEServerCore { get; set; }
22
32
23
33
/// <summary>
24
34
/// 当前请求的 json 节点
@@ -25,6 +25,10 @@ public abstract class XFEServerCore : ServerCoreServiceBase
25
25
/// </summary>
26
26
public XFEEventHandler<XFEServerCore, ServerCoreErrorEventArgs>? ServerCoreError { get; set; }
27
27
/// <summary>
28
/// 获取IP地址的函数,默认为从请求事件参数中获取客户端IP地址
29
/// </summary>
30
public Func<CyberCommRequestEventArgs, string> GetIpFunction { get; set; } = args => args.ClientIP;
31
/// <summary>
28
32
/// 核心服务列表
29
33
/// </summary>
30
34
internal List<IServerCoreOriginalService> serverCoreServiceList = [];
@@ -60,6 +64,8 @@ public abstract class XFEServerCore : ServerCoreServiceBase
60
64
{
61
65
Args = e
62
66
};
67
var clientIP = e.ClientIP;
68
try { clientIP = GetIpFunction(e); } catch (Exception ex) { Console.WriteLine($"[WARN]获取IP地址失败:{ex.Message}"); }
63
69
try
64
70
{
65
71
foreach (var serverCoreVerifyService in serverCoreVerifyServiceList)
@@ -112,11 +118,12 @@ public abstract class XFEServerCore : ServerCoreServiceBase
112
118
// inject server core reference and set context
113
119
try
114
120
{
115
serviceInstance.Initialize();
116
121
serviceInstance.XFEServerCore = this;
122
serviceInstance.ClientIP = e.ClientIP;
117
123
serviceInstance.Execute = execute;
118
124
serviceInstance.Json = queryableJsonNode;
119
125
serviceInstance.ReturnArgs = r;
126
serviceInstance.Initialize();
120
127
serviceInstance.RequestReceive();
121
128
await serviceInstance.RequestReceiveAsync();
122
129
}
@@ -143,11 +150,12 @@ public abstract class XFEServerCore : ServerCoreServiceBase
143
150
var instance = factory();
144
151
try
145
152
{
146
instance.Initialize();
147
153
instance.XFEServerCore = this;
154
instance.ClientIP = e.ClientIP;
148
155
instance.Execute = execute;
149
156
instance.Json = queryableJsonNode;
150
157
instance.ReturnArgs = r;
158
instance.Initialize();
151
159
instance.RequestReceive();
152
160
await instance.RequestReceiveAsync();
153
161
}
@@ -1,4 +1,5 @@
1
1
using XFEExtension.NetCore.AutoImplement;
2
using XFEExtension.NetCore.CyberComm;
2
3
using XFEExtension.NetCore.ServerInteractive.Implements;
3
4
using XFEExtension.NetCore.ServerInteractive.Interfaces.CoreService;
4
5
using XFEExtension.NetCore.StringExtension;
@@ -48,6 +49,17 @@ public abstract class XFEServerCoreBuilder : XFEBuilderBase<XFEServerCoreBuilder
48
49
/// <returns>XFE服务器核心构建器</returns>
49
50
public XFEServerCoreBuilder AddService<T>() where T : IServerCoreOriginalService, new() => AddService(new T());
50
51
52
/// <summary>
53
/// 使用自定义IP获取函数
54
/// </summary>
55
/// <param name="getIpFunction">自定义IP获取函数</param>
56
/// <returns>XFE服务器核心构建器</returns>
57
public XFEServerCoreBuilder UseCustomIPGetFunction(Func<CyberCommRequestEventArgs, string> getIpFunction)
58
{
59
xFEServerCore.GetIpFunction = getIpFunction;
60
return this;
61
}
62
51
63
/// <summary>
52
64
/// 添加校验服务
53
65
/// </summary>
@@ -5,7 +5,7 @@
5
5
<ImplicitUsings>enable</ImplicitUsings>
6
6
<Nullable>enable</Nullable>
7
7
<GenerateDocumentationFile>True</GenerateDocumentationFile>
8
<Version>1.1.6</Version>
8
<Version>1.1.7</Version>
9
9
<Title>XFEExtension.NetCore.ServerInteractive</Title>
10
10
<RepositoryUrl>https://github.com/XFEstudio/XFEExtension.NetCore.ServerInteractive</RepositoryUrl>
11
11
<AnalysisLevel>latest</AnalysisLevel>
@@ -20,10 +20,13 @@
20
20
<PackageTags>XFE;Server;服务器;XFEExtension</PackageTags>
21
21
<PackageReleaseNotes>
22
22
## 调整
23
24
新增用户对象权限校验方法,提升灵活性
25
23
26
增加 ValidateUserPermission 和 ValidatePermission 重载,支持直接传入 IUserInfo 对象进行权限校验,优化权限校验流程。项目版本号升级至 1.1.6。
24
增强核心服务IP处理与接口扩展,升级至1.1.7
25
26
本次更新新增了核心服务基类和接口的 ClientIP 与 Handled 属性,支持服务处理过程中获取客户端IP和标记处理状态。
27
XFEServerCore 增加 GetIpFunction 委托,允许自定义IP获取逻辑。
28
XFEServerCoreBuilder 新增 UseCustomIPGetFunction 方法,提升扩展性。
29
服务实例初始化时补充 ClientIP 赋值。版本号升级至 1.1.7,并优化注释与初始化顺序。
27
30
28
31
## 新增
29
32