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/Options/XFEServerCoreOptions.cs
+8
-0
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/EntryPointVerifyService.cs
+8
-2
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/XFEServerCoreBuilder.cs
+2
-0
XFEstudio/XFEExtension.NetCore.ServerInteractive
支持配置是否允许 GET/POST 请求方法
新增 AcceptGet 和 AcceptPost 配置项,可灵活控制服务端是否接受 GET 或 POST 请求。在校验逻辑中根据配置拒绝不被允许的方法,提升接口安全性和可配置性。
a6b165a
代码差异
3 个文件
+18
-2
@@ -24,6 +24,14 @@ public class XFEServerCoreOptions
24
24
/// </summary>
25
25
public bool AcceptNonStandardJson { get; set; } = true;
26
26
/// <summary>
27
/// 是否接收GET请求
28
/// </summary>
29
public bool AcceptGet { get; set; } = false;
30
/// <summary>
31
/// 是否接收POST请求
32
/// </summary>
33
public bool AcceptPost { get; set; } = true;
34
/// <summary>
27
35
/// 获取IP地址的函数,默认为从请求事件参数中获取客户端IP地址
28
36
/// </summary>
29
37
public Func<CyberCommRequestEventArgs, string> GetIPFunction { get; set; } = args => args.ClientIP;
@@ -19,10 +19,16 @@ public class EntryPointVerifyService : ServerCoreVerifyServiceBase
19
19
throw Error("您的IP已被封禁", HttpStatusCode.Forbidden);
20
20
}
21
21
22
if (!XFEServerCore.AcceptNonStandardJson && Request.HttpMethod != "POST")
22
if (!XFEServerCore.AcceptPost && Request.HttpMethod == "POST")
23
23
{
24
24
Console.WriteLine("-校验失败");
25
throw Error("请求方法必须为POST", HttpStatusCode.MethodNotAllowed);
25
throw Error("不接受为POST的请求方法", HttpStatusCode.MethodNotAllowed);
26
}
27
28
if (!XFEServerCore.AcceptGet && Request.HttpMethod == "GET")
29
{
30
Console.WriteLine("-校验失败");
31
throw Error("不接受为GET的请求方法", HttpStatusCode.MethodNotAllowed);
26
32
}
27
33
28
34
Console.WriteLine("-校验通过");
@@ -134,6 +134,8 @@ public abstract class XFEServerCoreBuilder : XFEBuilderBase<XFEServerCoreBuilder
134
134
_xFEServerCore.ServerCoreName = xFEServerCoreOptions.ServerCoreName;
135
135
_xFEServerCore.AutoUnescapeJson = xFEServerCoreOptions.AutoUnescapeJson;
136
136
_xFEServerCore.AcceptNonStandardJson = xFEServerCoreOptions.AcceptNonStandardJson;
137
_xFEServerCore.AcceptGet = xFEServerCoreOptions.AcceptGet;
138
_xFEServerCore.AcceptPost = xFEServerCoreOptions.AcceptPost;
137
139
_xFEServerCore.GetIPFunction = xFEServerCoreOptions.GetIPFunction;
138
140
_xFEServerCore.MainEntryPoint = xFEServerCoreOptions.MainEntryPoint;
139
141
if (xFEServerCoreOptions.BindingIPAddress.Count > 0)