我有一个 asp.net api,可以像这样使用 JWT 身份验证来调用
[Authorize]
[HttpPost]
public async Task<ActionResult<IRecord>> PostRecordA(Record rec){
var id = await dbc.AddNew(rec);
return CreatedAtAction(nameof(GetRecord), new { id = id }, rec);
}
新要求也适用于所有未经身份验证的用户并存储用户 ID,以便数据库调用将更改为
var id = await dbc.AddNew(uid, rec); // for authenticated users
// or
var id = await dbc.AddNew(0, rec);
有没有办法使 [Authorize] 属性可选并以某种方式获取 JWT 用户 ID?
环境是asp.net 8,aws cognito
我认为没有办法让它成为可选的。我会删除该属性,并使用
User.Identity.IsAuthenticated
检查请求是否是从经过身份验证的用户发送的,然后访问用户 ID。