src/ShenNius.Share.Domain/Services/Sys/UserService.cs
(开头部分) 6KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using AutoMapper;
using Microsoft.AspNetCore.Http;
using NLog;
using ShenNius.Share.Common;
using ShenNius.Share.Domain.Repository;
using ShenNius.Share.Infrastructure.Caches;
using ShenNius.Share.Infrastructure.Common;
using ShenNius.Share.Infrastructure.Extensions;
using ShenNius.Share.Model.Entity.Sys;
using ShenNius.Share.Models.Configs;
using ShenNius.Share.Models.Dtos.Input;
using ShenNius.Share.Models.Dtos.Output.Sys;
using ShenNius.Share.Models.Enums;
using ShenNius.Share.Models.Enums.Extension;
using System;
using System.Linq;
using System.Threading.Tasks;
namespace ShenNius.Share.Domain.Services.Sys
{
public interface IUserService : IBaseServer<User>
{
Task<ApiResult<LoginOutput>> LoginAsync(LoginInput loginInput);
Task<ApiResult> RegisterAsync(UserRegisterInput userRegisterInput);
Task<ApiResult> ModfiyAsync(UserModifyInput userModifyInput);
Task<ApiResult> ModfiyPwdAsync(ModifyPwdInput modifyPwdInput);
Task<ApiResult> GetUserAsync(int id);
}
public partial class UserService : BaseServer<User>, IUserService
{
private readonly IMapper _mapper;
private readonly IHttpContextAccessor _accessor;
private readonly ICurrentUserContext _currentUserContext;
private readonly ICacheHelper _cacheHelper;
public UserService(IMapper mapper, IHttpContextAccessor httpContextAccessor, ICurrentUserContext currentUserContext, ICacheHelper cacheHelper)
{
_mapper = mapper;
_accessor = httpContextAccessor;
_currentUserContext = currentUserContext;
_cacheHelper = cacheHelper;
}
public async Task<ApiResult<LoginOutput>> LoginAsync(LoginInput loginInput)
{
loginInput.Password = Md5Crypt.Encrypt(loginInput.Password);
var loginModel = await GetModelAsync(d => d.Name.Equals(loginInput.LoginName) && d.Password.Equals(loginInput.Password));
if (loginModel?.Id == 0)
{
new LogHelper().Process(loginModel?.Name, LogEnum.Login.GetEnumText(), $"{loginModel?.Name}登陆失败,用户名或密码错误!", LogLevel.Info);
return new ApiResult<LoginOutput>("用户名或密码错误", 500);
}
if (!loginInput.ConfirmLogin)
{
if (loginModel.IsLogin)
{
return new ApiResult<LoginOutput>($"该用户[{loginInput.LoginName}]已经登录,此时强行登录,其他地方会被挤下线!", 200);
}
}
string ip = _accessor.HttpContext.Request.Headers["X-Forwarded-For"].FirstOrDefault() ?? _accessor.HttpContext.Connection.RemoteIpAddress.ToString();
后面还有 81 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
