Как сделать вызов с помощью dotNetRDF в источник данных RDF с токеном-носителем? - PullRequest
1 голос
/ 13 апреля 2020

Я загружаю документ RDF, используя библиотеку dotNetRDF, выполняя следующие действия:

var g = new Graph();
UriLoader.Load(g, new Uri("https://myuri"));

Если я загружаюсь из защищенного источника данных, требующего токен-носитель для аутентификации, как мне это сделать? в том числе токен на предъявителя в моем URI? вот так:

var g = new Graph();
UriLoader.Load(g, new Uri("https://myuri?_bearer=MYTOKEN"));

Этого будет достаточно?

Тот же вопрос о том, как передать токен носителя в удаленный запрос SPARQL

Спасибо

1 Ответ

0 голосов
/ 14 апреля 2020

Для UriLoader вы не можете, если запрашиваемая служба требует токен в заголовке HTTP. Нет открытой возможности изменять HTTP-запрос, отправленный в этом API.

Обратите внимание, что UriLoader в конечном итоге является просто удобной оболочкой для извлечения URI через HttpWebRequest, поэтому вы всегда можете сделать HTTP-запрос вручную с любым дополнительные заголовки, которые вам нужны, и перенаправьте поток ответов на IRdfReader / IRdfHandler по мере необходимости.

Если удаленная служба позволяет указывать токен непосредственно в URI, то это должно работать через UriLoader, но это будет зависит от удаленной службы.

Если ваши данные доступны через конечную точку протокола хранилища графиков SPARQL, вы можете расширить SparqlHttpProtocolConnector и переопределить метод ApplyRequestOptions(HttpWebRequest), чтобы указать нужные параметры, такие как настраиваемый заголовок Authorization, который уменьшит дополнительную работу, которую вам нужно сделать.

Историческая справка - Большая часть раннего ядра dotNetRDF была написана до введения схемы аутентификации Bearer и в то время, когда большинство источников данных semanti c были свободно опубликованы в Интернете без какой-либо аутентификации. Очевидно, что с тех пор стандарты HTTP пошли дальше, и идея графа частных знаний стала популярной, что означает, что существует больше способов аутентификации и больше потребности в аутентификации.

...