2017-06-14 124 views
0

我敢肯定,我可能错过了一些相当基本的东西,但有没有办法公开ApiController访问没有授权?删除[Authorize]或添加[AllowAnonymous]似乎没有帮助。允许在没有授权的情况下访问单个API?

namespace Backend.Controllers 
{ 
    [MobileAppController, Authorize] 
    public class RebuildLocalDatabaseCheckController : ApiController 
    { 
     [HttpGet, Route("api/LastLocalDatabaseRebuildRequest")] 
     [AllowAnonymous] 
     public JToken Get() 
     { 
      return JToken.FromObject(DateTimeOffset.Now); 
     } 
    } 
} 

这是针对我为UWP应用程序设置的Azure移动应用程序。我确实希望其他所有的东西都需要授权,而且这部分工作正常。我只是想公开这部分而不需要用户登录。

回答

2

我检查了我的本地代码,它可以按预期工作。

enter image description here enter image description here

进行匿名访问,你需要从RebuildLocalDatabaseCheckController类中删除了Authorize一切行动或指定AllowAnonymous您指定的动作。有关Azure移动应用程序项目中自定义API的更多详细信息,请参阅adrian大厅的书here

此外,如果您的应用程序已被部署到Azure移动应用程序,允许对你的自定义API匿名的,你需要禁用应用服务的身份验证启用它允许匿名请求(无动作)如下:

enter image description here

此外,这里是一个博客约Architecture of Azure App Service Authentication/Authorization,你可以参考它更好地了解应用程序的服务认证/授权。

相关问题