Получение сообщения об ошибке в Sharepoint при публикации веб-части - PullRequest
0 голосов
/ 04 июля 2019

У меня это есть в веб-части, вставленной на страницу с сайта администратора Sharepoint (http://sharepointserver:port)), и я хочу прочитать некоторую информацию из mysite:

SPUserToken objSPUserToken = SPContext.Current.Site.SystemAccount.UserToken;
//SPUserToken objSPUserToken = SPContext.Current.Web.CurrentUser.UserToken;
using (SPSite mainSite = new SPSite("http://sharepointserver/sites/mysite", objSPUserToken))
{
    SPWeb mainWebSite = mainSite.OpenWeb();
    SPListItemCollection listItemsP = mainWebSite.Lists["Pages"].Items;
}

Когда я запускаю ее из Visual Studio, запрашивает имя пользователя / пароль и работает нормально, но когда я публикую wsp и запускаю его из браузера, у меня появляется сообщение: Извините, этот сайт не был предоставлен вам в доступ *

Я пытался использовать CurrentUser (закомментированную строку), и он дает мне то же самое сообщение даже из Visual Studio.

Я уверен, что у пользователя есть права на mysite. У вас есть какое-либо представление о том, чтопроисходит?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

Я наконец понял, причина сообщения «Извините, этот сайт не был предоставлен вам в доступе» заключается в том, что sharepoint регистрируется на сайте не как текущий пользователь, а как учетная запись пула, поэтому в сообщении указывается, что сайт не был предоставлен в общий доступ для учетных записей sp_applicationpool или sp_farm. Я решил добавить эти учетные записи в MySite.

Спасибо за вашу помощь!

0 голосов
/ 04 июля 2019

Измените код, как показано ниже.

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    //New SPSite object.
    using (SPSite mainSite = new SPSite("http://sharepointserver/sites/mysite"))
    {
        using (SPWeb mainWebSite =  mainSite.OpenWeb())
        {
            SPListItemCollection listItemsP = mainWebSite.Lists["Pages"].Items;
        }
    }
});

Ссылка: Метод SPSecurity.RunWithElevatedPrivileges

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...