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); }
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); } }
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); }