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

支持配置是否允许 GET/POST 请求方法

新增 AcceptGet 和 AcceptPost 配置项,可灵活控制服务端是否接受 GET 或 POST 请求。在校验逻辑中根据配置拒绝不被允许的方法,提升接口安全性和可配置性。

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

代码差异

3 个文件 +18 -2
Modified XFEExtension.NetCore.ServerInteractive/Options/XFEServerCoreOptions.cs +8 -0
@@ -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;
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/EntryPointVerifyService.cs +8 -2
@@ -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("-校验通过");
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Server/XFEServerCoreBuilder.cs +2 -0
@@ -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)