У меня есть настройка подачи OData в веб-приложении asp.net.Приложение использует Azure AD для аутентификации, поэтому я планировал передать токен носителя внутри скрипта PowerBI, как описано здесь:
https://community.powerbi.com/t5/Desktop/Power-BI-Desktop-Unable-to-pull-from-OData-feed-using-Token/td-p/129714
Фид работает нормально, например, через Fiddler,передавая токен на предъявителя и вызывая его.Но если я использую PowerBi или Excel, это выдает мне следующую ошибку:
DataSource.Error: Microsoft.Mashup.Engine1.Library.Resources.HttpResource: Request failed:
OData Version: 3 and 4, Error: The remote server returned an error: (400) Bad Request. (Bad Request)
OData Version: 4, Error: The remote server returned an error: (400) Bad Request. (Bad Request)
OData Version: 3, Error: The remote server returned an error: (400) Bad Request. (Bad Request)
Details:
DataSourceKind=OData
DataSourcePath=https://localhost:8401/odata/Persons
Когда я редактирую разрешения источника данных, я пробовал анонимный доступ.Я не могу использовать базовые учетные записи авторизации или организации, поскольку они не работают с AzureAD.Я настроил свой контроллер так, используя AllowAnonymous, хотя в любом случае я передаю токен-носитель, и он работает в Fiddler:
[AllowAnonymous]
public class PersonsController : ODataController
{
public PersonsController()
{
}
[EnableQuery(PageSize = 20, AllowedQueryOptions = AllowedQueryOptions.All)]
public IQueryable<Persons> Get()
{
return new List<Persons>
{
new Persons
{
Forename = "john",
Surname = "smith"
},
new Persons
{
Forename = "john",
Surname = "smith"
}
}.AsQueryable();
}
}