我确定我可能遗漏了一些相当基本的东西,但有没有办法让ApiController
在没有授权的情况下被访问?删除[Authorize]
或添加[AllowAnonymous]
似乎无济于事。
namespace Backend.Controllers
{
[MobileAppController, Authorize]
public class RebuildLocalDatabaseCheckController : ApiController
{
[HttpGet, Route("api/LastLocalDatabaseRebuildRequest")]
[AllowAnonymous]
public JToken Get()
{
return JToken.FromObject(DateTimeOffset.Now);
}
}
}
这适用于我为UWP应用设置的Azure移动应用。我确实希望其他一切都需要授权,而且那部分工作正常。我只想暴露这部分而无需用户登录。
答案 0 :(得分:2)
我已在本地检查了您的代码,它可以按预期工作。
对于匿名访问,您需要从Authorize
类中移除RebuildLocalDatabaseCheckController
以执行所有操作,或为指定的操作指定AllowAnonymous
。有关azure移动应用项目中自定义API的更多详细信息,请参阅adrian hall的书here。
此外,如果您的应用已部署到azure移动应用,为了允许匿名对您的自定义API,您需要禁用应用服务身份验证或通过允许匿名请求启用它(否)行动)如下:
此外,这里有一篇关于Architecture of Azure App Service Authentication / Authorization的博客,您可以参考它来更好地了解应用服务认证/授权。