LoginUserInfo中Attributes键值对无效

发布于 2021-11-16 14:13:25

1、用户登录成功,在登录成功时LoginUserInfo.Attributes添加2个键值对EnterpriseCode、IsDeveloper执行正常,其他页面读取LoginUserInfo.Attributes也没问题。

public async System.Threading.Tasks.Task<LoginUserInfo> DoLoginAsync(bool ignorePris = false)
        {
            //根据用户名和密码查询用户
            var rv = await DC.Set<FrameworkUser>().Where(x => x.ITCode.ToLower() == ITCode.ToLower() && x.Password == Utils.GetMD5String(Password) && x.IsValid)
                .Select(x => new { itcode = x.ITCode, id = x.GetID(), EnterpriseCode = x.EnterpriseCode, IsDeveloper = x.IsDeveloper }).SingleOrDefaultAsync();

            //如果没有找到则输出错误
            if (rv is null)
            {
                MSD.AddModelError("", Localizer["Sys.LoginFailed"]);
                return null;
            }
            else
            {
                LoginUserInfo user = new LoginUserInfo
                {
                    ITCode = rv.itcode,
                    UserId = rv.id.ToString()
                };
                //读取角色,用户组,页面权限,数据权限等框架配置信息
                await user.LoadBasicInfoAsync(Wtm);
                user.Attributes = new Dictionary<string, object>();
                user.Attributes.Add("EnterpriseCode", rv.EnterpriseCode);
                user.Attributes.Add("IsDeveloper", rv.IsDeveloper);

                return user;
            }
        }

2、这时候直接停止项目,再重新启动项目,不需要进行登录,直接进入主页面了。但这是LoginUserInfo.Attributes是NULL不能读取数据,LoginUserInfo.ITCode,LoginUserInfo.Name却是有值的。这是为什么?

查看更多

关注者
0
被浏览
70
1 个回答
cfzy
cfzy 2021-11-16
        public LoginUserInfo ReloadUser(WTMContext context, string account)
        {
            var rv = context.DC.Set<FrameworkUser>().Where(x => x.ITCode == account && x.IsValid)
              .Select(x => new { itcode = x.ITCode, id = x.GetID(), EnterpriseCode = x.EnterpriseCode, IsDeveloper = x.IsDeveloper }).SingleOrDefault();
            //如果没有找到则输出错误
            if (rv is null)
            {
                return null;
            }
            else
            {
                LoginUserInfo user = new LoginUserInfo
                {
                    ITCode = rv.itcode,
                    UserId = rv.id.ToString()
                };
                //读取角色,用户组,页面权限,数据权限等框架配置信息
                user.LoadBasicInfoAsync(context);
                user.Attributes = new Dictionary<string, object>();
                user.Attributes.Add("EnterpriseCode", rv.EnterpriseCode);
                user.Attributes.Add("IsDeveloper", rv.IsDeveloper);

                return user;
            }
        }

QQ群给出了解决方式。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览