namespace Dpz.Core.Public.ViewModel.Request;

/// <summary>
/// 客户端会话元数据,用于记录登录时的设备、浏览器与定位信息
/// </summary>
public class SessionMetadataRequest
{
    /// <summary>
    /// 设备名称
    /// </summary>
    public string? DeviceName { get; set; }

    /// <summary>
    /// 设备类型(如 mobile、desktop、tablet)
    /// </summary>
    public string? DeviceType { get; set; }

    /// <summary>
    /// 浏览器名称
    /// </summary>
    public string? BrowserName { get; set; }

    /// <summary>
    /// 浏览器版本
    /// </summary>
    public string? BrowserVersion { get; set; }

    /// <summary>
    /// 操作系统名称
    /// </summary>
    public string? OsName { get; set; }

    /// <summary>
    /// 操作系统版本
    /// </summary>
    public string? OsVersion { get; set; }

    /// <summary>
    /// 客户端平台标识
    /// </summary>
    public string? Platform { get; set; }

    /// <summary>
    /// 屏幕宽度(像素)
    /// </summary>
    public int? ScreenWidth { get; set; }

    /// <summary>
    /// 屏幕高度(像素)
    /// </summary>
    public int? ScreenHeight { get; set; }

    /// <summary>
    /// 客户端语言
    /// </summary>
    public string? Language { get; set; }

    /// <summary>
    /// 定位纬度
    /// </summary>
    public double? Latitude { get; set; }

    /// <summary>
    /// 定位经度
    /// </summary>
    public double? Longitude { get; set; }

    /// <summary>
    /// 定位精度(米)
    /// </summary>
    public double? LocationAccuracy { get; set; }

    /// <summary>
    /// 定位来源(如 GPS、IP)
    /// </summary>
    public string? LocationSource { get; set; }
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

代码解释

这是一个 C# 数据传输对象 (DTO) 类,用于在客户端和服务器之间传递会话元数据信息。

命名空间

namespace Dpz.Core.Public.ViewModel.Request;

属于 Dpz.Core.Public.ViewModel.Request 命名空间,表明这是一个请求视图模型,用于接收客户端发送的数据。

类的用途

SessionMetadataRequest 用于记录用户登录时的客户端环境信息,包括:

1. 设备信息

  • DeviceName: 设备名称(如 "iPhone 13", "Samsung Galaxy")
  • DeviceType: 设备类型(mobile/desktop/tablet)

2. 浏览器信息

  • BrowserName: 浏览器名称(如 Chrome、Firefox、Safari)
  • BrowserVersion: 浏览器版本号

3. 操作系统信息

  • OsName: 操作系统名称(如 Windows、iOS、Android)
  • OsVersion: 操作系统版本

4. 平台与显示信息

  • Platform: 客户端平台标识
  • ScreenWidth: 屏幕宽度(像素)
  • ScreenHeight: 屏幕高度(像素)
  • Language: 客户端语言设置(如 "zh-CN", "en-US")

5. 地理定位信息

  • Latitude: 纬度坐标
  • Longitude: 经度坐标
  • LocationAccuracy: 定位精度(单位:米)
  • LocationSource: 定位方式(GPS/IP/WiFi 等)

设计特点

  1. 所有属性都是可空类型 (string?, int?, double?),表示这些信息都是可选的,客户端可能无法提供全部数据

  2. 安全与审计用途:这类数据通常用于:

    • 安全审计(检测异常登录)
    • 用户会话管理
    • 多设备登录控制
    • 用户行为分析
  3. 符合 GDPR 等隐私规范:收集地理位置等敏感信息需要用户授权

这是一个典型的现代 Web/移动应用中用于增强安全性和用户体验的元数据收集模型。

评论加载中...