小编use*_*620的帖子

当我添加请求参数时,为什么我的 Request.BodyReader 为空(ASP.NET Core 3.0)

我从 ASP.NET Core 2.2 迁移到 3.0,现在遇到了问题。如果我写这样的代码:

[HttpPost("test")]
public async Task Test(object o) {
    HttpContext.Request.EnableBuffering();
    var result = await HttpContext.Request.BodyReader.ReadAsync();
    var buffer = result.Buffer;
    Console.WriteLine(System.Text.Encoding.Default.GetString(buffer.FirstSpan));
    HttpContext.Request.BodyReader.AdvanceTo(buffer.End);
}
Run Code Online (Sandbox Code Playgroud)

我将在控制台中收到一条空消息,但如果我删除参数

[HttpPost("test")]
public async Task Test() {
    HttpContext.Request.EnableBuffering();
    var result = await HttpContext.Request.BodyReader.ReadAsync();
    var buffer = result.Buffer;
    Console.WriteLine(System.Text.Encoding.Default.GetString(buffer.FirstSpan));
    HttpContext.Request.BodyReader.AdvanceTo(buffer.End);
}
Run Code Online (Sandbox Code Playgroud)

, 我收到来自 body 的消息

curl -X POST \ http://localhost:5000/test \ -H 'Content-Type: application/json' \ -d '{ "test":123 }'

c# async-await asp.net-core-3.0

5
推荐指数
1
解决办法
2386
查看次数

在asp net core中设置身份验证(asp net 5)

我需要能够像这样在测试中的代码中验证我的用户身份

var identity = new GenericIdentity("ausov@fsb.ru", "UserId");
Thread.CurrentPrincipal = new GenericPrincipal(identity, null);
Run Code Online (Sandbox Code Playgroud)

或者像这样

FormsAuthentication.SetAuthCookie(username, rememberMe);
Run Code Online (Sandbox Code Playgroud)

但这些方法不适用于asp net 5.

asp.net asp.net-mvc asp.net-mvc-5

1
推荐指数
1
解决办法
1697
查看次数