我学会了用 ASP.Net core 生成令牌...
我有一个生成令牌验证的方法......这个
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJQYXR5IiwianRpIjoiY2Q5OGE3NjMtOGRkZC00NWM1LTg3MzAtMGE2MDBjZDE1NTg1IiwiZXhwIjoxNTUwNzE2OTQwLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjYzOTM5LyIsImF1ZCI6Imh0dHA6Ly9sb2NhbGhvc3Q6NjM5MzkvIn0.ndvWn-pBwdo7UlxFvuE0IPWnxpDtzAKTfq_FRkgMFeM
Run Code Online (Sandbox Code Playgroud)
当您将令牌粘贴到 jwt.io 中时,这会显示:无效签名,但令牌仍然具有值 user....为什么 jwt.io 显示此消息?
生成token的方法:
public static string CreateToken(User user, string keyValue, string issuer)
{
/* keyValue = "veryVerySecretKey" */
/* issuer = "http://localhost:63939/" */
var claims = new[] {
new Claim(JwtRegisteredClaimNames.Sub, user.Name),
new Claim(JwtRegisteredClaimNames.Jti, user.Id.ToString())
};
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(keyValue));
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var token = new JwtSecurityToken(issuer,
issuer,
claims,
expires: DateTime.Now.AddMinutes(30),
signingCredentials: creds);
return new JwtSecurityTokenHandler().WriteToken(token);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 EF Core 来处理我的数据库,并且我想将一条记录插入到我的 postgresql 数据库中。
但是当我插入记录并保存更改时,应用程序会抛出错误:
指数超出范围。必须为非负数且小于集合的大小。(参数“索引”)
我知道当我使用集合时可能会出现此错误,但在本例中我正在执行插入。
我的基本实体:
public abstract class BaseEntity: IBaseEntity<long>
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key, Column("id", Order = 0)]
public long Id { get; set; }
[Column("createdAt")]
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime CreatedAt{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
从业务层插入:
var entityToInsert = new Delivery()
{
State = 1, //active
Date = DateTime.Now,
};
await this.UOW.Delivery.CreateAsync(entityToInsert);
await this.UOW.SaveChangesAsync();
Run Code Online (Sandbox Code Playgroud)
我的通用存储库方法:
public async Task<TEntity> CreateAsync(TEntity entity)
{
await Context.AddAsync<TEntity>(entity);
return entity;
}
Run Code Online (Sandbox Code Playgroud)
交货表定义:
id bigint // type identity "by default" autoincrment 1 per …Run Code Online (Sandbox Code Playgroud) 我有一个使用jax-rs的Web服务,我的服务返回一个对象列表,但是您不知道如何添加自定义状态值来响应,例如,我要构建的结果如下:
如果可以:
{
"status": "success",
"message": "list ok!!",
"clients": [{
"name": "john",
"age": 23
},
{
"name": "john",
"age": 23
}]
}
Run Code Online (Sandbox Code Playgroud)
如果是错误:
{
"status": "error",
"message": "not found records",
"clients": []
}
Run Code Online (Sandbox Code Playgroud)
我的休息服务:
@POST
@Path("/getById")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public List<Client> getById(Client id) {
try {
return Response.Ok(new ClientLogic().getById(id)).build();
//how to add status = success, and message = list! ?
} catch (Exception ex) {
return ??
// ex.getMessage() = "not found records"
//i want return json with satus = error …Run Code Online (Sandbox Code Playgroud) 我用 C# 学习 mongodb,我想创建一个包含实体列表的记录,但子实体没有生成他的对象 ID。
这是我的代码:
public class Curso
{
[BsonId]
public ObjectId _id { get; set; }
[BsonElement("descripcion")]
public string descripcion { get; set; }
[BsonElement("horas")]
public int horas { get; set; }
[BsonElement("alumnos")]
public IEnumerable<Alumno> alumnos { get; set; }
public Curso()
{
}
}
Run Code Online (Sandbox Code Playgroud)
校友实体:
public class Alumno
{
[BsonId]
public ObjectId _id { get; set; }
[BsonElement("name")]
public string name { get; set; }
[BsonElement("age")]
public int age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我插入了一个新课程,自动生成 id Curso …
我想插入对象到SQL服务器数据库,我使用EF 6.x. 但是当我执行Create方法时,这个成功并没有显示任何错误,但在数据库中是空的:/.
public class ProductoEntity
{
public int ID { get; set; }
public string Descripcion { get; set; }
public string Categoria { get; set; }
public int Precio { get; set; }
public Producto toSql()
{
var sqlEntity = new Producto();
sqlEntity.Descripcion = this.Descripcion;
sqlEntity.Categoria = this.Categoria;
sqlEntity.Precio = this.Precio;
return sqlEntity;
}
public bool Create()
{
bool result = false;
try
{
StoreEntities context = new StoreEntities();
context.Producto.Add(toSql()); ;
result = true;
}
catch (Exception ex) …Run Code Online (Sandbox Code Playgroud) 我正在使用 Dapper,并且编写了一个存储过程,用于插入一行并返回标识值。
使用Dapper,我想捕获这个标识值,但结果作为动态类型返回,我不知道如何访问这个id。
我的存储过程:
CREATE PROCEDURE USER_INSERT
(@name varchar(30),
@job varchar(30))
AS
BEGIN
INSERT INTO User (name, job)
VALUES (@name, @job)
SELECT SCOPE_IDENTITY()
END
Run Code Online (Sandbox Code Playgroud)
C#代码:
public async Task<int> InsertTest()
{
using (var connection = new SqlConnection("myconnectionstring"))
{
string SP_INSERT = "USER_INSERT";
var parameters = new { name = "Jon", job = "developer" };
var insert = await connection.QueryAsync(SP_INSERT, parameters, commandType: CommandType.StoredProcedure);
var resultInsert = insert.SingleOrDefault();
}
return 0; //only for test
}
Run Code Online (Sandbox Code Playgroud)
查询结果截图,如何访问我的id字段?
我有一个文本字符串,当它超过特定长度时,我将字符串分成 2 个字符串,将剩余内容的其余部分传递给另一个变量,但我有一个例外
索引和长度必须引用字符串中的位置。(参数“长度”)
我的 C# 代码:
string text = "Hello word jeje";
if (text.Length > 10)
{
string stringOne = text.Substring(0, 10);
string stringTwo = text.Substring(11, text.Length); //throw exception
}
Run Code Online (Sandbox Code Playgroud)
预期结果:
string text = "Hello word jeje";
string stringOne = "Hello";
string stringTwo = " jeje";
Run Code Online (Sandbox Code Playgroud)