如何为经过身份验证和未经身份验证的用户制作 ASP.NET Core 8 Web API

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

我有一个 ASP.NET Core 8 Web 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 Core 8,AWS cognito

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

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

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

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