这是基于vue-vben-admin 模板适用于abp Vnext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.6 KiB

LINGYUN.Abp.Identity.Session.AspNetCore

身份服务用户会话扩展模块

接口描述

AbpSessionMiddleware 在请求管道中从用户令牌提取 sessionId 作为全局会话标识, 可用于注销会话

注意: 当匿名用户访问时, 以请求 CorrelationId 作为标识; 当 CorrelationId 不存在时, 使用随机 Guid.NewGuid().

HttpContextDeviceInfoProvider 从请求参数中提取设备标识

出于模块职责分离原则, 请勿与 LINGYUN.Abp.Identity.AspNetCore.Session 模块混淆

HttpContextDeviceInfoProvider 用于处理会话IP的地址位置解析

IsParseIpLocation 启用后将对会话IP进行地理位置解析 IgnoreProvinces 解析地理位置时需要忽略的省份,通常情况下中国的直辖市需要 LocationParser 自定义需要处理的地理位置数据

功能特性

  • 提供AspNetCore环境下的会话管理功能
  • 支持从请求中提取设备标识信息
  • 支持IP地理位置解析功能
  • 依赖AbpAspNetCoreModule、AbpIP2RegionModule和AbpIdentitySessionModule模块

配置项

AbpIdentitySessionAspNetCoreOptions

{
  "Identity": {
    "Session": {
      "AspNetCore": {
        "IsParseIpLocation": false,    // 是否解析IP地理信息,默认:false
        "IgnoreProvinces": [          // 不做处理的省份,默认包含中国直辖市
          "北京",
          "上海",
          "天津",
          "重庆"
        ]
      }
    }
  }
}

基本用法

  1. 配置IP地理位置解析
Configure<AbpIdentitySessionAspNetCoreOptions>(options =>
{
    options.IsParseIpLocation = true;    // 启用IP地理位置解析
    options.IgnoreProvinces.Add("香港"); // 添加需要忽略的省份
    options.LocationParser = (locationInfo) => 
    {
        // 自定义地理位置解析逻辑
        return $"{locationInfo.Country}{locationInfo.Province}{locationInfo.City}";
    };
});
  1. 使用设备信息提供者
public class YourService
{
    private readonly IDeviceInfoProvider _deviceInfoProvider;

    public YourService(IDeviceInfoProvider deviceInfoProvider)
    {
        _deviceInfoProvider = deviceInfoProvider;
    }

    public async Task<DeviceInfo> GetDeviceInfoAsync()
    {
        return await _deviceInfoProvider.GetDeviceInfoAsync();
    }
}

配置使用

[DependsOn(typeof(AbpIdentitySessionAspNetCoreModule))]
public class YouProjectModule : AbpModule
{
  // other
}

更多信息