代码拉取完成,页面将自动刷新
特别说明:如果 Issue 报告为问题且开发成员回复确认问题之后但三天内都不能得到反馈,则视为无效Issue。
发生了什么?
在JwtHandler中篡改了401状态码
异常堆栈是什么?
Win调试模式下完全正常,但是。
Docker下报错StatusCode cannot be set because the response has already started
什么代码导致?
JwtHandler中:
public override async Task HandleAsync(AuthorizationHandlerContext context)
{
// 常规授权(可以判断不是第三方)
//var isAuthenticated = context.User.Identity;
//手机号
var account = context.User.FindFirst(ClaimConst.CLAINM_ACCOUNT)?.Value;
var token = JWTEncryption.GetJwtBearerToken(context.GetCurrentHttpContext());
var value = await _redis.GetMemberTokenAsync(account);
if(!string.IsNullOrWhiteSpace(value) && token == value)
{
await AuthorizeHandleAsync(context);
}
else
{
context.Fail();
await context.GetCurrentHttpContext().Response.WriteAsJsonAsync(new XnRestfulResult<object>
{
Code = StatusCodes.Status401Unauthorized,
Success = false,
Data = null,
Message = "401, please LogIn",
Extras = null,
Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
});
}
}
期待的结果是?
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
登录 后才可以发表评论