小编ili*_*ili的帖子

如何从.Net Core Web API返回Unathorized

我确实有简单的API控制器,我确实需要返回401.方法的返回类型不是IActionResult那么我不能只是return Unauthorized()

在这种情况下如何归还未经授权的人?

[Produces("application/json")]
public class MyController : Comntroller
{
    public SomeData GetSomeData([FromBody]RequestData data)
    {
        if(!CheckAccessCondition(data, GetCurrentUser()))
            // ?? how to return from here 401
        ///
    }
}
Run Code Online (Sandbox Code Playgroud)

UPD:

  1. 使用IActionResult不是一种方式.从一方面来看它不是类型安全的,并且不允许为我的API生成C#和Typescript客户端(现在我正在使用NSwag用于此目的)
  2. 因为性能而避免抛出异常会很棒(抛出异常是非常昂贵的操作)
  3. 关于检查访问条件的一些更新 - 我需要检查授权用户是否有权使用请求数据进行操作.因此,对于使用一些"类似授权"的属性,在请求数据被反序列化之后进行检查会很棒(为了避免再次进行双重反序列化 - 因为性能)

c# asp.net asp.net-core

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

asp.net ×1

asp.net-core ×1

c# ×1