示例#1
0
        public UserInfoResponseModel UserLogin(UserInfoRequestModel request)
        {
            var obj = db.UserInfo.ToList().Find(i => i.UserName == request.UserName);
            UserInfoResponseModel response = AutoMappingUtils.ConvertTo <UserInfoResponseModel>(obj);

            return(response);
        }
示例#2
0
        public static UserInfoResponseModel GetUserInfoResponseModel(UserInfoRequestModel request)
        {
            var response = new UserInfoResponseModel();

            var userSettings = SettingService.GetSettings(request.Id);

            ChatLocoContext DbContext = new ChatLocoContext();
            UserDTO         user      = DbContext.Users.FirstOrDefault(u => u.Id == request.Id);

            response.DefaultHandle = userSettings.DefaultHandle;
            response.Username      = user.Username;
            response.Email         = userSettings.Email;

            return(response);
        }
示例#3
0
        public UserInfoResponseModel UserRegister(UserInfoRequestModel request)
        {
            UserInfoResponseModel response = new UserInfoResponseModel();
            UserInfoResponseModel userData = new UserInfoResponseModel()
            {
                UserName = request.UserName, UserNO = request.UserNO, PassWord = request.PassWord
            };

            db.UserInfo.Add(userData);
            int result = db.SaveChanges();

            if (result == 1)
            {
                response.UserNO = request.UserNO;
            }
            return(response);
        }
示例#4
0
        public async Task <UserInfoResponseModel> GetUserInfo(Guid userId)
        {
            var response = new UserInfoResponseModel();

            using (var unitOfWork = await DataConnectionFactory.CreateUnitOfWork())
            {
                var user = await unitOfWork.Users.GetById(userId);

                var userModel = new UserModel(user);

                response.DisplayName  = userModel.GetDisplayName(NameFormat.FullNameNoTitle, true, false);
                response.ProfileImage = await userModel.GetProfileImageAsBase64(unitOfWork);

                response.Permissions = (await GetPermissionValuesByUser(userId)).ToArray();
            }

            return(response);
        }
        public string GenerateJwtToken(UserInfoResponseModel user)
        {
            // create claims
            var claims = new List <Claim>
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                new Claim(ClaimTypes.Email, user.Email),
                new Claim(ClaimTypes.Name, user.FullName),
                new Claim(ClaimTypes.MobilePhone, user.MobileNo)
            };

            //TODO: add roles to claims here


            // create IdentityClaims
            var identityClaims = new ClaimsIdentity(claims);

            // create tokenBuilder and generate the token
            var securityKey =
                new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["TokenSettings:PrivateKey"]));

            var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256Signature);

            var expires = DateTime.UtcNow.AddHours(_configuration.GetValue <double>("TokenSettings:ExpirationHours"));

            var tokenHandler = new JwtSecurityTokenHandler();

            var tokenObject = new SecurityTokenDescriptor
            {
                Subject            = identityClaims,
                Expires            = expires,
                SigningCredentials = credentials,
                Issuer             = _configuration["TokenSettings:Issuer"],
                Audience           = _configuration["TokenSettings:Audience"],
            };

            var encodedJwt = tokenHandler.CreateToken(tokenObject);

            return(tokenHandler.WriteToken(encodedJwt));
        }
示例#6
0
        public async Task <ResponseModelBase <UserInfoResponseModel> > ValidateServerToken([FromBody] ValidateServerTokenRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                return(ErrorModel.Of <UserInfoResponseModel>(null, "invalid_request"));
            }

            var token = ldb.DBContext.ServerTokens
                        .Include(a => a.Owner)
                        .ThenInclude(a => a.OwnedProducts)
                        .Where(a => a.ServerToken == model.ServerToken).FirstOrDefault();

            if (token == null)
            {
                return(ErrorModel.Of <UserInfoResponseModel>(null, "token_not_found"));
            }
            if (DateTime.Now > token.ExpiryDate)
            {
                //Remove it
                token.Owner.RemoveToken(token);
                await ldb.Save();

                return(ErrorModel.Of <UserInfoResponseModel>(null, "token_expired"));
            }

            if (!token.Owner.IsEmailConfirmed)
            {
                return(ErrorModel.Of <UserInfoResponseModel>(null, "email_not_confirmed"));
            }

            var resp = new UserInfoResponseModel(token.Owner);

            //Remove it
            token.Owner.RemoveToken(token);
            ldb.DBContext.ServerTokens.Remove(token);

            await ldb.Save();

            return(Models.OkModel.Of(resp));
        }
示例#7
0
        public int UserInfoUpdate(UserInfoRequestModel request)
        {
            EntityFrameworkDbContext _db = new EntityFrameworkDbContext();
            //修改需要对主键赋值,注意:这里需要对所有字段赋值,没有赋值的字段会用NULL更新到数据库
            var user = new UserInfoResponseModel
            {
                UID       = request.UID,
                UserNO    = request.UserNO,
                UserName  = request.UserName,
                UserEmail = request.UserEmail,
                PassWord  = request.NewPassWord
            };

            //将实体附加到对象管理器中
            _db.UserInfo.Attach(user);

            //获取到状态实体,可以修改其状态
            var setEntry = ((IObjectContextAdapter)_db).ObjectContext.ObjectStateManager.GetObjectStateEntry(user);

            //只修改实体属性
            setEntry.SetModifiedProperty("PassWord");

            return(_db.SaveChanges());
        }