添加登录日志功能

This commit is contained in:
橙子
2022-10-02 14:02:21 +08:00
parent 2b02194a18
commit e963a4051f
12 changed files with 165 additions and 37 deletions

View File

@@ -11,6 +11,7 @@ using Yi.Framework.Model.Models;
using System.IdentityModel.Tokens.Jwt;
using System.IO;
using System.Text.RegularExpressions;
using UAParser;
namespace Yi.Framework.WebCore
{
@@ -165,6 +166,19 @@ namespace Yi.Framework.WebCore
return param;
}
/// <summary>
/// 获取客户端信息
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public static ClientInfo GetClientInfo(this HttpContext context)
{
var str = GetUserAgent(context);
var uaParser = Parser.GetDefault();
ClientInfo c = uaParser.Parse(str);
return c;
}
/// <summary>
/// 获取客户端IP
@@ -191,5 +205,41 @@ namespace Yi.Framework.WebCore
return result;
}
/// <summary>
/// 获取浏览器标识
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public static string GetUserAgent(this HttpContext context)
{
return context.Request.Headers["User-Agent"];
}
/// <summary>
/// 记录用户登陆信息
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public static LoginLogEntity GetLoginLogInfo(this HttpContext context)
{
var ipAddr = context.GetClientIp();
//var ip_info = IpTool.Search(ipAddr);
//var location = "广州" + "-" + "深圳";
ClientInfo clientInfo = context.GetClientInfo();
LoginLogEntity entity = new()
{
Browser = clientInfo.Device.Family,
Os = clientInfo.OS.ToString(),
LoginIp = ipAddr,
//登录是没有token的所有是获取不到用户名需要在控制器赋值
//LoginUser = context.GetUserNameInfo(),
LoginLocation = "广州" + "-" + "深圳",
IsDeleted = false
};
return entity;
}
}
}