C# 如何使用用户声明标识添加错误处理

C# 如何使用用户声明标识添加错误处理,c#,asp.net-core,error-handling,claims-based-identity,C#,Asp.net Core,Error Handling,Claims Based Identity,我正在尝试添加一些错误处理,因此当用户尝试使用错误的承载令牌访问端点时,它会向用户提供一些反馈,并显示错误消息,而不是空白的错误消息。我曾尝试在控制器中使用if语句来实现它,但它似乎没有成功 我已附上我目前的答复 public异步任务后期处理(VenueRequest请求) { var userId=User.Claims.FirstOrDefault(x=>x.Type==“userId”).Value; if(userId==null) 抛出新的UnauthorizedAccessExce

我正在尝试添加一些错误处理,因此当用户尝试使用错误的承载令牌访问端点时,它会向用户提供一些反馈,并显示错误消息,而不是空白的错误消息。我曾尝试在控制器中使用if语句来实现它,但它似乎没有成功

我已附上我目前的答复

public异步任务后期处理(VenueRequest请求)
{
var userId=User.Claims.FirstOrDefault(x=>x.Type==“userId”).Value;
if(userId==null)
抛出新的UnauthorizedAccessException(“用户未授权”);

您必须捕获
未经授权的访问异常
并返回相应的
IActionResult
以向用户显示消息。因此,我必须使用try-catch来代替。这是一种测试友好的方法,依我看。但为了保持简单,您还可以在检查使用是否正确后返回
IActionResult
rId为空,带有相应的消息。我已尝试设置一个try-catch,但它无法捕获某些异常reason@rey123,请尝试返回状态码(401,“用户未授权”);
         public async Task<IActionResult> PostVenues(VenueRequest request)
        {
            var userId = User.Claims.FirstOrDefault(x => x.Type == "UserID").Value;

            if (userId == null)
                throw new UnauthorizedAccessException("User is not authorized");