feat: 增加 ILogin 业务逻辑

This commit is contained in:
Argo-Tianyi 2021-12-14 19:38:07 +08:00
parent 3de89cd94e
commit 5b8ca016c2
5 changed files with 108 additions and 2 deletions

View File

@ -0,0 +1,63 @@
using System.ComponentModel;
namespace Bootstrap.DataAccess
{
/// <summary>
/// 登录用户信息实体类
/// </summary>
public class LoginLog
{
/// <summary>
/// 获得/设置 Id
/// </summary>
public string? Id { get; set; }
/// <summary>
/// 获得/设置 用户名
/// </summary>
[DisplayName("登录名称")]
public string UserName { get; set; } = "";
/// <summary>
/// 获得/设置 登录时间
/// </summary>
[DisplayName("登录时间")]
public DateTime LoginTime { get; set; }
/// <summary>
/// 获得/设置 登录IP地址
/// </summary>
[DisplayName("主机")]
public string Ip { get; set; } = "";
/// <summary>
/// 获得/设置 登录浏览器
/// </summary>
[DisplayName("浏览器")]
public string Browser { get; set; } = "";
/// <summary>
/// 获得/设置 登录操作系统
/// </summary>
[DisplayName("操作系统")]
public string OS { get; set; } = "";
/// <summary>
/// 获得/设置 登录地点
/// </summary>
[DisplayName("登录地点")]
public string City { get; set; } = "";
/// <summary>
/// 获得/设置 登录是否成功
/// </summary>
[DisplayName("登录结果")]
public string Result { get; set; } = "";
/// <summary>
/// 获得/设置 用户 UserAgent
/// </summary>
[DisplayName("登录名称")]
public string UserAgent { get; set; } = "";
}
}

View File

@ -33,9 +33,11 @@ namespace Microsoft.Extensions.DependencyInjection
// 增加数据服务
services.AddSingleton(typeof(IDataService<>), typeof(DefaultDataService<>));
// 增加业务服务
services.AddSingleton<INavigations, NavigationsService>();
services.AddSingleton<IDicts, DictsService>();
services.AddSingleton<IUsers, UsersService>();
services.AddSingleton<ILogins, LoginsService>();
return services;
}
}

View File

@ -0,0 +1,24 @@
using BootstrapAdmin.Web.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BootstrapAdmin.DataAccess.PetaPoco.Services
{
class LoginsService : ILogins
{
/// <summary>
///
/// </summary>
/// <param name="userName"></param>
/// <param name="result"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public Task<bool> Log(string userName, bool result)
{
return Task.FromResult(true);
}
}
}

View File

@ -0,0 +1,16 @@
namespace BootstrapAdmin.Web.Core
{
/// <summary>
///
/// </summary>
public interface ILogins
{
/// <summary>
///
/// </summary>
/// <param name="userName"></param>
/// <param name="result"></param>
/// <returns></returns>
Task<bool> Log(string userName, bool result);
}
}

View File

@ -60,11 +60,12 @@ namespace Bootstrap.Admin.Controllers
/// </summary>
/// <returns>The login.</returns>
/// <param name="userService"></param>
/// <param name="loginService"></param>
/// <param name="userName">User name.</param>
/// <param name="password">Password.</param>
/// <param name="remember">Remember.</param>
[HttpPost]
public async Task<IActionResult> Login([FromServices] IUsers userService, string userName, string password, string remember)
public async Task<IActionResult> Login([FromServices] IUsers userService, [FromServices] ILogins loginService, string userName, string password, string remember)
{
if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password))
{
@ -72,7 +73,7 @@ namespace Bootstrap.Admin.Controllers
}
var auth = userService.Authenticate(userName, password);
//await HttpContext.Log(userName, auth);
await loginService.Log(userName, auth);
return auth ? await SignInAsync(userName, remember == "true") : RedirectLogin();
}