网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
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);
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

上述代码定义了一个名为 IUserSecurityService 的接口,主要用于管理用户的安全相关功能,特别是与用户的 SecurityStamp 相关的操作。SecurityStamp 是一种用于验证用户身份和安全性的标识符,通常在用户的安全状态发生变化时更新,例如密码更改或账户安全事件。以下是接口中各个方法的详细解释:

  1. UpdateUserSecurityStampAsync:

    • 功能: 更新指定用户的 SecurityStamp。通常在用户密码修改或发生安全事件时调用。
    • 参数:
      • userId: 用户的唯一标识符。
      • reason: 更新的原因,默认为 "Security update",用于审计日志。
    • 返回值: 返回新的 SecurityStamp
  2. ValidateUserSecurityStampAsync:

    • 功能: 验证给定的 SecurityStamp 是否有效。
    • 参数:
      • userId: 用户的唯一标识符。
      • securityStamp: 要验证的 SecurityStamp
    • 返回值: 返回一个布尔值,指示 SecurityStamp 是否有效。
  3. ForceUserReauthenticationAsync:

    • 功能: 强制用户重新登录,通过更新其 SecurityStamp 来实现。
    • 参数:
      • userId: 用户的唯一标识符。
      • reason: 强制登出的原因,默认为 "Security enforcement"。
    • 返回值: 返回一个布尔值,指示操作是否成功。
  4. BatchUpdateSecurityStampsAsync:

    • 功能: 批量更新多个用户的 SecurityStamp,通常用于处理系统级的安全事件。
    • 参数:
      • userIds: 用户ID的列表。
      • reason: 更新的原因,默认为 "Batch security update"。
    • 返回值: 返回成功更新的用户数量。
  5. UpdateSecurityStampOnPasswordChangeAsync:

    • 功能: 在用户修改密码时更新其 SecurityStamp,专门用于密码更改场景。
    • 参数:
      • userId: 用户的唯一标识符。
    • 返回值: 返回新的 SecurityStamp

总结

这个接口提供了一系列方法来管理用户的安全状态,确保在关键操作(如密码更改或安全事件)后,用户的身份验证信息得到及时更新和验证。这对于保护用户账户安全和防止未授权访问至关重要。

loading