ZhouliProject/Zhouli.Bms/Data/UserAccount.cs

(完整代码) 1KB

using Zhouli.DI;
using Zhouli.DbEntity.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Options;
using ZhouliSystem.Models;
using Zhouli.Common;

namespace ZhouliSystem.Data
{
    /// <summary>
    /// 关于用户信息的操作
    /// </summary>
    public class UserAccount
    {
        private readonly IHttpContextAccessor _contextAccessor;
        private readonly IOptionsSnapshot<CustomConfiguration> _optionsSnapshot;
        public UserAccount(IHttpContextAccessor contextAccessor, IOptionsSnapshot<CustomConfiguration> optionsSnapshot)
        {
            _contextAccessor = contextAccessor;
            _optionsSnapshot = optionsSnapshot;
        }
        /// <summary>
        /// COOKIE名常量
        /// </summary>
        private const string USER_COOKIE_NAME = "UserLogin";
        /// <summary>
        /// 得到用户登录数据
        /// </summary>
        /// <returns></returns>
        public SysUser GetUserInfo()
        {
            var user = _contextAccessor.HttpContext.Session.GetSession<SysUser>(USER_COOKIE_NAME);
            return user ?? null;
        }
        /// <summary>
        /// 登录操作
        /// </summary>
        /// <returns></returns>
        public bool Login(SysUser user)
        {
            user.isAdministrctor = JudgeUserAdmin(user);
            _contextAccessor.HttpContext.Session.SetSession(USER_COOKIE_NAME, user);
            return true;
        }
        /// <summary>
        /// 判断用户是否超级管理员
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public bool JudgeUserAdmin(SysUser user) =>
            user.UserName.Equals(_optionsSnapshot.Value.adminAccount);
    }
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。