1

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

我发现我的web.config

<authentication mode="None" />

和WebApiCOnfig.cs

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

我如何可以访问我的API 无需验证下面的线?这是一个简单的测试,无需任何身份验证

+0

要么删除全局/控制器/操作认证过滤器/属性,要么在预期的控制器或操作上使用'[AllowAnonymous]'属性 – Nkosi

+0

我评论config.Filters @Nkosi。我应该在哪里添加[AllowAnonymous]? – Ashkan

+1

不,它是一个或另一个。无论如何。如果使用属性,则可以将其放置在控制器上以应用于控制器中的所有操作,或者直接将其放置在操作本身中以用于该操作。 – Nkosi

回答

1

使用[AllowAnonymous]属性打算控制器上或仅期望的操作

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

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

上cotroller所有行动

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

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

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