У меня есть приложение, размещенное поставщиком, которое использует фильтр контекста SharePoint для аутентификации пользователей. Я храню токен контекста, сгенерированный в первом запросе, в переменной сеанса и использую его в последующих вызовах.
Когда я нажимаю на приложение в содержимом сайта и перенаправляюсь в приложение, размещенное на провайдере, все работает хорошо.
Но когда я перехожу на страницу в SharePoint Online, на которой размещена веб-часть клиента, размещенная в приложении, размещенном поставщиком, сеанс не работает.
При проверке заголовков запросов, отправляемых приложением При открытии веб-части и приложения я обнаружил, что ASP.NET_SessionId
cook ie не сохраняется в веб-части приложения, но когда приложение, размещенное на провайдере, перемещается напрямую.
Также я обнаружил, что SPCacheKey
cook ie сохраняется в обоих случаях только Session cook ie не сохраняется при загрузке через веб-часть приложения.
Я проверял это в Chrome, а также IE, и оба выдавая тот же вывод.
Я попытался изменить web.config согласно этой ссылке
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="p3p" value="CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT""/>
</customHeaders>
</httpProtocol>
</system.webServer>
Но это не решило проблему. Из-за того, что сеанс не сохраняется, каждый вызов ajax в приложении, размещенном на моем провайдере, перенаправляется на appredirect.aspx, который выдает
Доступ к xmlhttprequest по адресу https://tenant.sharepoint.com из источника https://providerhosted.domain заблокирован политикой cors нет доступа
Почему ASP. NET Session Id cook ie не сохраняется при загрузке через веб-часть приложения ? Пожалуйста, помогите