Esempio n. 1
0
        public Response IsAuthenticated(LoginRequestDTO request, out string token)
        {
            Response res = new Response();

            token = string.Empty;
            var             sys   = _sysUser.ResponseToken(request);
            BaseColumnModel model = new BaseColumnModel();

            model.SysUser = sys;
            if (sys == null)
            {
                res.Code    = 2;
                res.Message = "该用户不存在";
                return(res);
            }

            var claims = new[]
            {
                //可有可无
                //new Claim(JwtRegisteredClaimNames.Jti, sys.Id.ToString()),
                //new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToUniversalTime().ToString(),ClaimValueTypes.Integer64),
                //new Claim(JwtRegisteredClaimNames.Sub,sys.UserAccount),
                //new Claim(JwtRegisteredClaimNames.Sid,sys.Id.ToString()),
                //可有可无
                //new Claim(ClaimTypes.Name,sys.UserName),
                //new Claim(ClaimTypes.Email,sys.UserEmail),
                //new Claim(ClaimTypes.MobilePhone,sys.UserMobile),
                new Claim("Id", sys.Id.ToString()),
                new Claim("UserName", sys.UserName),
                new Claim("UserAccount", sys.UserAccount),
                new Claim("UserEmail", sys.UserEmail),
                new Claim("UserMobile", sys.UserMobile),
            };
            var key         = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_tokenManagement.Secret));
            var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
            var jwtToken    = new JwtSecurityToken(
                issuer: _tokenManagement.Issuer,
                audience: _tokenManagement.Audience,
                claims: claims,
                expires: DateTime.Now.AddMinutes(_tokenManagement.AccessExpiration),
                signingCredentials: credentials);

            token = new JwtSecurityTokenHandler().WriteToken(jwtToken);
            var t = new JwtSecurityTokenHandler().ReadJwtToken(token);

            sys.UserPassword = "";
            var result = new { user = sys.UserName, token = token };

            res.Code = 1;
            res.Data = result;

            return(res);
        }
Esempio n. 2
0
        public void QueryTableHeaderModelCloneTest()
        {
            QueryTableHeaderModel original = GetQueryTableHeaderModel();

            QueryTableHeaderModel clone = original.Clone();

            Assert.IsNotNull(clone);
            Assert.AreNotSame(clone, original);
            Assert.AreEqual(original.ColumnCount, clone.ColumnCount);
            Assert.AreEqual(original.PacketCount, clone.PacketCount);
            Assert.AreEqual(original.QueryCacheId, clone.QueryCacheId);

            Assert.AreNotSame(original.ColumnTypeByName, clone.ColumnTypeByName);
            Assert.AreEqual(original.ColumnTypeByName.Count, clone.ColumnTypeByName.Count);
            for (int i = 0; i < original.ColumnTypeByName.Count; i++)
            {
                BaseColumnModel originalColumn = original.ColumnTypeByName[i];
                BaseColumnModel cloneColumn    = clone.ColumnTypeByName[i];

                Assert.AreNotSame(originalColumn, cloneColumn);
                Assert.AreEqual(originalColumn.Caption, cloneColumn.Caption);
                Assert.AreEqual(originalColumn.FinalType, cloneColumn.FinalType);
                Assert.AreEqual(originalColumn.InitilalType, cloneColumn.InitilalType);
                Assert.AreEqual(originalColumn.Name, cloneColumn.Name);
            }

            Assert.AreNotSame(original.ColumnTypes, clone.ColumnTypes);
            Assert.AreEqual(original.ColumnTypes.Length, clone.ColumnTypes.Length);
            for (int i = 0; i < original.ColumnTypes.Length; i++)
            {
                Type originalType = original.ColumnTypes[i];
                Type cloneType    = clone.ColumnTypes[i];

                Assert.AreEqual(originalType.Name, cloneType.Name);
            }
        }
Esempio n. 3
0
        public static BaseTableDTO SerializeFromTable(DataTable table, int maxPacketRows = 0)
        {
            var columnModels = new List <BaseColumnModel>();

            foreach (DataColumn column in table.Columns)
            {
                var columnModel = new BaseColumnModel(column.ColumnName, column.Caption, column.DataType);
                columnModels.Add(columnModel);
            }

            DataTableReader    reader = table.CreateDataReader();
            BaseTablePacketDTO packet = SerializeBodyPacket(reader, columnModels, maxPacketRows);
            var result = new BaseTableDTO {
                TableName = table.TableName
            };

            while (packet.RowCount != 0)
            {
                result.BodyPackets.Add(packet);
                packet = SerializeBodyPacket(reader, columnModels, maxPacketRows);
            }
            result.Header = SerializeHeader(columnModels);
            return(result);
        }