【问题标题】:asp mvc web api return 401 unauthorizedasp mvc web api返回401未经授权
【发布时间】:2017-06-20 05:14:22
【问题描述】:

起初我是asp的初学者。从 asp.net 教程开始编写一个 web api。 教程完成后(我没有添加任何其他代码),当我尝试测试 Api 时它返回我 unautherize 401

我在我的 Web.config 中找到以下行

<authentication mode="None" />

在 WebApiCONfig.cs 中

config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

如何无需身份验证访问我的 API?这是一个简单的测试,不需要任何身份验证

【问题讨论】:

  • 要么删除全局/控制器/操作身份验证过滤器/属性,要么在预期控制器或操作上使用[AllowAnonymous] 属性
  • 我评论了 config.Filters @Nkosi。我应该在哪里添加 [AllowAnonymous]?
  • 不,是其中之一。反正。如果使用属性,您可以将其放置在控制器上以应用于控制器中的所有操作,或者直接在操作本身中仅用于该操作。

标签: asp.net-mvc authentication asp.net-web-api http-status-code-401


【解决方案1】:

在预期控制器上使用[AllowAnonymous] 属性来执行该控制器上的所有操作

[AllowAnonymous] // Applies to all ations
public class MyController : ApiController {
    public IHttpActionResult MyAction1() {
        //...
    }

    public IHttpActionResult MyAction2() {
        //...
    }
}

或仅在预期的操作上

public class MyController : ApiController {
    [AllowAnonymous] // Applies to only this ation
    public IHttpActionResult MyAction() {
        //...
    }

    //Still secure
    public IHttpActionResult MyAction2() {
        //...
    }
}

完成测试后,您可以删除它们。

【讨论】:

    猜你喜欢
    • 2016-12-24
    • 2023-03-09
    • 2013-02-26
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多