网站首页 网站源码
namespace Dpz.Core.Service.RepositoryService;
/// <summary>
/// 用户安全服务接口
/// 提供用户SecurityStamp管理和安全相关功能
/// </summary>
public interface IUserSecurityService
{
/// <summary>
/// 更新用户的SecurityStamp
/// 通常在密码修改、账户安全事件等情况下调用
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="reason">更新原因(用于审计日志)</param>
/// <returns>新的SecurityStamp</returns>
Task<string> UpdateUserSecurityStampAsync(string userId, string reason = "Security update");
/// <summary>
/// 验证用户的SecurityStamp是否有效
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="securityStamp">要验证的SecurityStamp</param>
/// <returns>是否有效</returns>
Task<bool> ValidateUserSecurityStampAsync(string userId, string securityStamp);
/// <summary>
/// 验证用户的SecurityStamp是否有效(返回详细的验证结果)
/// 用于区分不同的失败原因:用户被禁用、SecurityStamp无效等
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="securityStamp">要验证的SecurityStamp</param>
/// <returns>验证结果枚举值</returns>
Task<UserSecurityValidationResult> ValidateUserSecurityStampDetailedAsync(
string userId,
string securityStamp
);
/// <summary>
/// 强制用户重新登录(通过更新SecurityStamp)
/// </summary>
/// <param name="userId">用户ID</param>
/// <param name="reason">强制登出原因</param>
/// <returns>操作结果</returns>
Task<bool> ForceUserReauthenticationAsync(
string userId,
string reason = "Security enforcement"
);
/// <summary>
/// 批量更新多个用户的SecurityStamp
/// 用于系统级安全事件处理
/// </summary>
/// <param name="userIds">用户ID列表</param>
/// <param name="reason">更新原因</param>
/// <returns>成功更新的用户数量</returns>
Task<int> BatchUpdateSecurityStampsAsync(
List<string> userIds,
string reason = "Batch security update"
);
/// <summary>
/// 在密码修改时更新用户的SecurityStamp
/// 专用于密码修改场景的SecurityStamp更新
/// </summary>
/// <param name="userId">用户ID</param>
/// <returns>新的SecurityStamp</returns>
Task<string> UpdateSecurityStampOnPasswordChangeAsync(string userId);
}
上述代码定义了一个名为 IUserSecurityService 的接口,主要用于管理用户的安全相关功能,特别是与用户的 SecurityStamp 相关的操作。SecurityStamp 是一种用于验证用户身份和安全性的标识符,通常在用户的安全状态发生变化时更新,例如密码更改或账户安全事件。以下是接口中各个方法的详细解释:
UpdateUserSecurityStampAsync:
SecurityStamp。通常在用户密码修改或发生安全事件时调用。userId: 用户的唯一标识符。reason: 更新的原因,默认为 "Security update",用于审计日志。SecurityStamp。ValidateUserSecurityStampAsync:
SecurityStamp 是否有效。userId: 用户的唯一标识符。securityStamp: 要验证的 SecurityStamp。SecurityStamp 是否有效。ForceUserReauthenticationAsync:
SecurityStamp 来实现。userId: 用户的唯一标识符。reason: 强制登出的原因,默认为 "Security enforcement"。BatchUpdateSecurityStampsAsync:
SecurityStamp,通常用于处理系统级的安全事件。userIds: 用户ID的列表。reason: 更新的原因,默认为 "Batch security update"。UpdateSecurityStampOnPasswordChangeAsync:
SecurityStamp,专门用于密码更改场景。userId: 用户的唯一标识符。SecurityStamp。这个接口提供了一系列方法来管理用户的安全状态,确保在关键操作(如密码更改或安全事件)后,用户的身份验证信息得到及时更新和验证。这对于保护用户账户安全和防止未授权访问至关重要。
