modules/00_Admin/Admin.Core/Infrastructure/LoginHandler/UserNameLoginHandler.cs
(开头部分) 5KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Options;
using Mkh.Auth.Abstractions;
using Mkh.Auth.Abstractions.LoginHandlers;
using Mkh.Auth.Abstractions.Options;
using Mkh.Logging.Abstractions.Providers;
using Mkh.Mod.Admin.Core.Application.Account;
using Mkh.Mod.Admin.Core.Domain.Account;
using Mkh.Utils.Annotations;
namespace Mkh.Mod.Admin.Core.Infrastructure.LoginHandler;
/// <summary>
/// 用户名登录处理器
/// </summary>
[ScopedInject]
internal class UserNameLoginHandler : IUsernameLoginHandler
{
private readonly IOptionsMonitor<AuthOptions> _authOptions;
private readonly IVerifyCodeProvider _verifyCodeProvider;
private readonly IAccountRepository _accountRepository;
private readonly IPasswordHandler _passwordHandler;
private readonly ILoginLogHandler _loginLogProvider;
private readonly IAccountService _accountService;
private readonly ITenantResolver _tenantResolver;
private readonly AdminLocalizer _localizer;
public UserNameLoginHandler(IOptionsMonitor<AuthOptions> authOptions, IVerifyCodeProvider verifyCodeProvider, IAccountRepository accountRepository, IPasswordHandler passwordHandler, ILoginLogHandler loginLogProvider, IAccountService accountService, ITenantResolver tenantResolver, AdminLocalizer localizer)
{
_authOptions = authOptions;
_verifyCodeProvider = verifyCodeProvider;
_accountRepository = accountRepository;
_passwordHandler = passwordHandler;
_loginLogProvider = loginLogProvider;
_accountService = accountService;
_tenantResolver = tenantResolver;
_localizer = localizer;
}
public async Task<IResultModel<UsernameLoginResult>> Handle(UsernameLoginModel model)
{
var result = new ResultModel<UsernameLoginResult>();
var loginLog = new LoginLogModel
{
LoginMode = LoginMode.Username,
Platform = model.Platform,
LoginTime = DateTime.Now,
UserAgent = model.UserAgent,
IP = model.IP
};
try
{
//检测验证码
if (_authOptions.CurrentValue.EnableVerifyCode)
{
var verifyCodeCheckResult = await _verifyCodeProvider.Verify(model.VerifyCodeId, model.VerifyCode);
if (!verifyCodeCheckResult.Successful)
{
后面还有 92 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
