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

完善网络架构 添加Readme信息

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

代码差异

6 个文件 +93 -24
Modified README.md +66 -1
@@ -1 +1,66 @@
1 # XFEExtension.NetCore.ServerInteractive
1 # XFEExtension.NetCore.ServerInteractive
2
3 ## ����
4
5 ServerInteractive��һ��C#��DLL�⣬�为����XFEExtension.NetCore�ṩ��CyberComm����ܹ�����ʹ���߿��Կ��ٹ����������Ϳͻ���������
6
7 # ʾ����ʹ��ǰ�ǵý�����Ӧ�����ã�
8
9 ---
10
11 ## ���������������
12
13 #### ʹ��XFE��׼����ܹ�
14
15 ```csharp
16 var server = XFEServerBuilder.CreateBuilder() // ����������������
17 .UseXFEServer() // ʹ��XFE�������ܹ�
18 .AddCoreServer( // ���Ӻ��ķ�����
19 XFEServerCoreBuilder.CreateBuilder() // �����������������
20 .UseXFEStandardServerCore( // ʹ��XFE��׼����������
21 static () => UserProfile.UserTable, // ��ȡ�û����ķ���
22 static () => UserProfile.EncryptedUserLoginModelTable, // ��ȡ�û�����ģ�͵ķ���
23 UserProfile.EncryptedUserLoginModelTable.Add, // �����û�����ģ�͵ķ���
24 static user => UserProfile.EncryptedUserLoginModelTable.Remove(user), // �Ƴ��û�����ģ�͵ķ���
25 XFEDataTableManagerBuilder.CreateBuilder() // ����DataTable������������
26 .AddTable<Person, DataProfile>("����", (int)UserRole.ҵ��Ա, (int)UserRole.����, (int)UserRole.ҵ��Ա, (int)UserRole.ҵ��Ա) // ������Ϊ����ı���Person���ͣ�AutoConfigΪDataProfile�����Ӹ��Ļ�ȡȨ��Ϊҵ��Ա���Ƴ�Ȩ��Ϊ����
27 .AddTable<Order, DataProfile>("����", (int)UserRole.ҵ��Ա, (int)UserRole.����, (int)UserRole.ҵ��Ա, (int)UserRole.ҵ��Ա) // ������Ϊ�����ı���Order���ͣ�AutoConfigΪDataProfile�����Ӹ��Ļ�ȡȨ��Ϊҵ��Ա���Ƴ�Ȩ��Ϊ����
28 .AddTable<User, UserProfile>("�û�", (int)UserRole.����, (int)UserRole.����, (int)UserRole.����, (int)UserRole.ҵ��Ա)) // ������Ϊ�û��ı���User���ͣ�AutoConfigΪUserProfile����ȡȨ��Ϊҵ��Ա�������Ƴ�����Ȩ��Ϊ����
29 .Build()) // �����������
30 .Build(); // ����������
31 await server.Start(); // ��������
32 ```
33
34 #### �����Զ������
35
36 ```csharp
37 var server = XFEServerBuilder.CreateBuilder()
38 .AddInitializer<MyInitilizerService>() // �Զ����ʼ������
39 .AddService<MyService>() // �Զ������
40 .AddAsyncService<MyAsyncService>() // �Զ����첽����
41 .Build();
42 ```
43
44 ---
45
46 ## ��ͻ���������
47
48 #### ʹ��XFE��׼������
49
50 ```csharp
51 var xFEClientRequester = XFEClientRequesterBuilder.CreateBuilder("http://localhost:8080/", string.Empty, DeviceHelper.GetUniqueHardwareId()) // ������IP��ַ���û�Session�Լ�Ӳ������
52 .UseXFEStandardRequest() // ʹ��XFE��׼������
53 .Build(); // �����ͻ���������
54
55 var result = await xFEClientRequester.Request<(string session, DateTime expireDate)>("login", account, password); // ����login����
56 if (result.StatusCode == System.Net.HttpStatusCode.OK)
57 {
58 Console.WriteLine(result.Result.session);
59 Console.WriteLine(result.Result.expireDate);
60 }
61 else
62 {
63 Console.WriteLine(result.StatusCode);
64 Console.WriteLine(result.Message);
65 }
66 ```
Modified XFEExtension.NetCore.ServerInteractive.TServer/Program.cs +16 -14
@@ -6,17 +6,19 @@ using XFEExtension.NetCore.ServerInteractive.Utilities;
6 6 using XFEExtension.NetCore.ServerInteractive.Utilities.DataTable;
7 7 using XFEExtension.NetCore.ServerInteractive.Utilities.Server;
8 8
9 var server = XFEServerBuilder.CreateBuilder()
10 .UseXFEServer()
11 .AddCoreServer(XFEServerCoreBuilder.CreateBuilder()
12 .UseXFEStandardServerCore(static () => UserProfile.UserTable,
13 static () => UserProfile.EncryptedUserLoginModelTable,
14 UserProfile.EncryptedUserLoginModelTable.Add,
15 static user => UserProfile.EncryptedUserLoginModelTable.Remove(user),
16 XFEDataTableManagerBuilder.CreateBuilder()
17 .AddTable<Person, DataProfile>("人物", (int)UserRole.业务员, (int)UserRole.经理, (int)UserRole.业务员, (int)UserRole.业务员)
18 .AddTable<Order, DataProfile>("订单", (int)UserRole.业务员, (int)UserRole.经理, (int)UserRole.业务员, (int)UserRole.业务员)
19 .AddTable<User, UserProfile>("用户", (int)UserRole.业务员, (int)UserRole.经理, (int)UserRole.业务员, (int)UserRole.业务员))
20 .Build())
21 .Build();
22 await server.Start();
9 var server = XFEServerBuilder.CreateBuilder() //创建服务器构建器
10 .UseXFEServer() //使用XFE服务器架构
11 .AddCoreServer( //添加核心服务器
12 XFEServerCoreBuilder.CreateBuilder() //创建核心服务器构建器
13 .UseXFEStandardServerCore( //使用XFE标准服务器核心
14 static () => UserProfile.UserTable, //获取用户表的方法
15 static () => UserProfile.EncryptedUserLoginModelTable, //获取用户加密模型的方法
16 UserProfile.EncryptedUserLoginModelTable.Add, //添加用户加密模型的方法
17 static user => UserProfile.EncryptedUserLoginModelTable.Remove(user), //移除用户加密模型的方法
18 XFEDataTableManagerBuilder.CreateBuilder() //创建DataTable管理器构建器
19 .AddTable<Person, DataProfile>("人物", (int)UserRole.业务员, (int)UserRole.经理, (int)UserRole.业务员, (int)UserRole.业务员) //添加名为人物的表格,Person类型,AutoConfig为DataProfile。添加更改获取权限为业务员,移除权限为经理
20 .AddTable<Order, DataProfile>("订单", (int)UserRole.业务员, (int)UserRole.经理, (int)UserRole.业务员, (int)UserRole.业务员) //添加名为订单的表格,Order类型,AutoConfig为DataProfile。添加更改获取权限为业务员,移除权限为经理
21 .AddTable<User, UserProfile>("用户", (int)UserRole.经理, (int)UserRole.经理, (int)UserRole.经理, (int)UserRole.业务员)) //添加名为用户的表格,User类型,AutoConfig为UserProfile。获取权限为业务员,添加移除更改权限为经理
22 .Build()) //构建核心服务器
23 .Build(); //构建服务器
24 await server.Start(); //启动服务
Modified XFEExtension.NetCore.ServerInteractive.Test/Program.cs +2 -1
@@ -6,9 +6,10 @@ using XFEExtension.NetCore.ServerInteractive.Utilities.Requester;
6 6
7 7 internal class Program
8 8 {
9 static readonly XFEClientRequester xFEClientRequester = XFEClientRequesterBuilder.CreateBuilder("http://localhost:8080/", string.Empty, DeviceHelper.GetUniqueHardwareId())
9 static readonly XFEClientRequester xFEClientRequester = XFEClientRequesterBuilder.CreateBuilder("http://localhost:8080/api", string.Empty, DeviceHelper.GetUniqueHardwareId())
10 10 .UseXFEStandardRequest()
11 11 .Build();
12
12 13 static readonly TableRequester tableRequester = new();
13 14
14 15 static Program() => xFEClientRequester.MessageReceived += XFEClientRequester_MessageReceived;
Modified XFEExtension.NetCore.ServerInteractive/Models/ServerModels/ServerCoreReturnArgs.cs +3 -1
@@ -49,9 +49,11 @@ public class ServerCoreReturnArgs : Exception
49 49 /// </summary>
50 50 /// <param name="message"></param>
51 51 /// <param name="code"></param>
52 public ServerCoreReturnArgs GetError(string message, HttpStatusCode code = HttpStatusCode.InternalServerError)
52 /// <param name="handled"></param>
53 public ServerCoreReturnArgs GetError(string message, HttpStatusCode code = HttpStatusCode.InternalServerError, bool handled = false)
53 54 {
54 55 ReturnMessage = message;
56 Handled = handled;
55 57 StatusCode = code;
56 58 return this;
57 59 }
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/DailyCounterService.cs +0 -1
@@ -2,7 +2,6 @@
2 2 using XFEExtension.NetCore.CyberComm;
3 3 using XFEExtension.NetCore.FileExtension;
4 4 using XFEExtension.NetCore.ServerInteractive.Implements.CoreService;
5 using XFEExtension.NetCore.ServerInteractive.Interfaces.ServerService;
6 5
7 6 namespace XFEExtension.NetCore.ServerInteractive.Utilities.Server.Services.CoreService;
8 7
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/EntryPointVerifyServer.cs +6 -6
@@ -15,16 +15,16 @@ public class EntryPointVerifyServer : ServerCoreVerifyServiceBase
15 15 public override bool VerifyRequest(object? sender, CyberCommRequestEventArgs e, ServerCoreReturnArgs r)
16 16 {
17 17 Console.Write($"[DEBUG]【{e.ClientIP}】接收到请求");
18 if (ServerBaseProfile.BannedIPAddressList.Contains(e.ClientIP)) throw new StopAction(() =>
18 if (ServerBaseProfile.BannedIPAddressList.Contains(e.ClientIP))
19 19 {
20 20 Console.WriteLine("-校验失败");
21 r.Close(HttpStatusCode.Forbidden);
22 }, "您的已被封禁");
23 if (e.RequestURL?.Segments.Length > 2 && $"{e.RequestURL?.Segments[0]}{e.RequestURL?.Segments[1]}" != $"/{ServerBaseProfile.EntryPoint}" && e.RequestMethod != "POST") throw new StopAction(() =>
21 r.Error("您的已被封禁", HttpStatusCode.Forbidden);
22 }
23 if (e.RequestURL?.Segments.Length < 2 || $"{e.RequestURL?.Segments[0]}{e.RequestURL?.Segments[1]}" != $"/{ServerBaseProfile.EntryPoint}" || e.RequestMethod != "POST")
24 24 {
25 25 Console.WriteLine("-校验失败");
26 r.Close(HttpStatusCode.BadGateway);
27 }, "请求的API接口不正确");
26 r.Error("请求的API接口不正确", HttpStatusCode.BadGateway);
27 }
28 28 Console.WriteLine("-校验通过");
29 29 return true;
30 30 }