如何为经过身份验证和未经身份验证的用户制作asp.net webapi

问题描述 投票:0回答:1

我有一个 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

asp.net asp.net-core authentication jwt
1个回答
0
投票

我认为没有办法让它成为可选的。我会删除该属性,并使用

User.Identity.IsAuthenticated
检查请求是否是从经过身份验证的用户发送的,然后访问用户 ID。

© www.soinside.com 2019 - 2024. All rights reserved.