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

重构用户服务基类并优化属性校验机制

重构 ServerCoreUserServiceBase,Session、DeviceInfo、User 属性实现自动校验和懒加载,缺失时抛出异常。VerifyUserInfo 方法简化为仅返回 IUserInfo,移除 _user 字段,属性内部实现缓存。项目版本号升级至 3.2.1。

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

代码差异

2 个文件 +29 -28
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/ServerCoreUserServiceBase.cs +26 -21
@@ -11,30 +11,37 @@ namespace XFEExtension.NetCore.ServerInteractive.Utilities.Server.Services.CoreS
11 11 /// <inheritdoc cref="ServerCoreStandardServiceBase" />
12 12 public abstract class ServerCoreUserServiceBase : ServerCoreStandardServiceBase, IUserServiceBase
13 13 {
14 IUserInfo? _user;
15
16 14 /// <summary>
17 /// 会话
15 /// 会话(自动校验)
18 16 /// </summary>
19 public string? Session { get => Json > "session"; }
17 public string? Session
18 {
19 get
20 {
21 field ??= Json > "session" ?? throw Error("会话无效");
22 return field;
23 }
24 }
20 25 /// <summary>
21 /// 设备信息
26 /// 设备信息(自动校验)
22 27 /// </summary>
23 public string? DeviceInfo { get => Json > "deviceInfo"; }
28 public string? DeviceInfo
29 {
30 get
31 {
32 field ??= Json > "deviceInfo" ?? throw Error("缺少设备信息");
33 return field;
34 }
35 }
24 36 /// <summary>
25 37 /// 本次请求用户(自动校验)
26 38 /// </summary>
27 public IUserInfo? User
39 public IUserInfo User
28 40 {
29 41 get
30 42 {
31
32 if (_user is null)
33 {
34 var (_, _, user) = VerifyUserInfo();
35 _user = user;
36 }
37 return _user;
43 field ??= VerifyUserInfo();
44 return field;
38 45 }
39 46 }
40 47 /// <inheritdoc/>
@@ -58,13 +65,11 @@ public abstract class ServerCoreUserServiceBase : ServerCoreStandardServiceBase,
58 65 /// 校验用户信息(仅限标准请求)
59 66 /// </summary>
60 67 /// <returns></returns>
61 protected (string session, string deviceInfo, IUserInfo user) VerifyUserInfo()
68 protected IUserInfo VerifyUserInfo()
62 69 {
63 string session = Json > "session" ?? throw Error("用户未登录");
64 string deviceInfo = Json > "deviceInfo" ?? throw Error("缺少电脑信息");
65 if (session.NullOrWhiteSpace) throw Error("用户未登录");
66 if (deviceInfo.NullOrWhiteSpace) throw Error("电脑信息不能为空");
67 var result = UserHelper.GetUser(session, deviceInfo, ClientIP, GetEncryptedUserLoginModelFunction(), GetUserFunction(), out var user);
68 return user is null ? throw Error(UserHelper.OutPutResult(result)) : (session, deviceInfo, user);
70 if (Session.NullOrWhiteSpace) throw Error("会话无效");
71 if (DeviceInfo.NullOrWhiteSpace) throw Error("设备信息无效");
72 var result = UserHelper.GetUser(Session, DeviceInfo, ClientIP, GetEncryptedUserLoginModelFunction(), GetUserFunction(), out var user);
73 return user is null ? throw Error(UserHelper.OutPutResult(result)) : user;
69 74 }
70 75 }
Modified XFEExtension.NetCore.ServerInteractive/XFEExtension.NetCore.ServerInteractive.csproj +3 -7
@@ -5,7 +5,7 @@
5 5 <ImplicitUsings>enable</ImplicitUsings>
6 6 <Nullable>enable</Nullable>
7 7 <GenerateDocumentationFile>True</GenerateDocumentationFile>
8 <Version>3.2.0</Version>
8 <Version>3.2.1</Version>
9 9 <Title>XFEExtension.NetCore.ServerInteractive</Title>
10 10 <RepositoryUrl>https://github.com/XFEstudio/XFEExtension.NetCore.ServerInteractive</RepositoryUrl>
11 11 <AnalysisLevel>latest</AnalysisLevel>
@@ -21,13 +21,9 @@
21 21 <PackageReleaseNotes>
22 22 ## 调整
23 23
24 增强用户服务基类与权限校验逻辑,发布3.2.0
24 重构用户服务基类并优化属性校验机制
25 25
26 本次提交:
27 - IUserServiceBase 接口新增 Session、DeviceInfo、User 属性及 VerifyUserInfo 方法;
28 - UserHelper 工具类参数 sessionId 统一为 session,优化方法和注释;
29 - ServerCoreUserServiceBase 实现用户信息自动获取与校验;
30 - 项目版本号升级为 3.2.0,正式发布。
26 重构 ServerCoreUserServiceBase,Session、DeviceInfo、User 属性实现自动校验和懒加载,缺失时抛出异常。VerifyUserInfo 方法简化为仅返回 IUserInfo,移除 _user 字段,属性内部实现缓存。项目版本号升级至 3.2.1。
31 27
32 28 ## 新增
33 29