SPAppToken (токен контекста) имеет значение null

У меня есть локальная среда Sharepoint 2013, для которой я разрабатываю приложение, размещенное у поставщика, с помощью Visual Studio.

В проекте Visual Studio есть проект приложения, содержащий настраиваемую кнопку ленты, которая переходит в веб-проект. Веб-проект размещен в Windows Azure, и здесь я получаю сообщение об ошибке, что токен контекста имеет значение null или пустую строку.

Получение токена осуществляется с помощью следующего кода:

var contextTokenString = TokenHelper.GetContextTokenFromRequest(Request);
SharePointContextToken contextToken =
     TokenHelper.ReadAndValidateContextToken
                             (contextTokenString, Request.Url.Authority);

Когда я вижу, что передается на сайт, размещенный в Azure, я замечаю, что SPAppToken имеет значение null. При использовании средства просмотра ULS я получаю сообщение об ошибке "Служба управления доступом Azure недоступна"

Я уже проверил, зарегистрировано ли приложение (используя appregnew.aspx) и что идентификатор одинаков для этого и в файлах appManifest.xml и web.config.

Как получить токен контекста? Нужно ли мне делать что-то еще в Azure, чтобы все заработало?


person Marijn    schedule 12.09.2013    source источник
comment
Получаете ли вы SPRedirectMessage=EndpointAuthorityDoesNotMatch в строке запроса от SharePoint? Затем проверьте следующее: social.msdn.microsoft.com/Forums/sharepoint/en-US/   -  person Guðmundur H    schedule 25.09.2013
comment
всякий раз, когда вы получаете этот нулевой токен, запускайте F12 в IE для запроса и наблюдайте за деталями ответа, в нем подробно описаны все сообщения об ошибках, в которых говорится, что требуется аутентификация прокси, или прокси не установлен, или сервер недоступен, или https не установлен в вашем PHApp   -  person Sundara Prabu    schedule 18.04.2016


Ответы (2)


Ссылка из комментариев мне помогла. Я публикую ответ здесь, поэтому нам не нужно полагаться на URL-адрес.

Вы получаете сообщение «EndpointAuthorityDoesNotMatch», когда URL-адрес запуска вашего приложения не соответствует «домену приложения», зарегистрированному для client_id вашего приложения. сервер разработки через страницу _layouts/15/appregnew.aspx на сайте O365. Вот ссылка с дополнительной информацией о регистрации идентификаторов клиентов: http://msdn.microsoft.com/en-us/library/jj687469.aspx

person mark    schedule 28.11.2014

В сообщении "Служба управления доступом Azure недоступна" говорится, что SharePoint не может создать SPAppToken, так как не может связаться с ACS (Azure Access Control), чтобы сделать это. Это может быть по разным причинам (например, проблемы с сетевым подключением).

Вы также можете проверить этот блог: CJG: служба Azure Access Control недоступна.

person lu_ko    schedule 17.03.2015