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/Utilities/Server/Services/CoreService/ServerCoreUserServiceBase.cs
+26
-21
Modified
XFEExtension.NetCore.ServerInteractive/XFEExtension.NetCore.ServerInteractive.csproj
+3
-7
XFEstudio/XFEExtension.NetCore.ServerInteractive
重构用户服务基类并优化属性校验机制
重构 ServerCoreUserServiceBase,Session、DeviceInfo、User 属性实现自动校验和懒加载,缺失时抛出异常。VerifyUserInfo 方法简化为仅返回 IUserInfo,移除 _user 字段,属性内部实现缓存。项目版本号升级至 3.2.1。
c3b2dc1
代码差异
2 个文件
+29
-28
@@ -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
}
@@ -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