Доступ к удаленному файлу с помощью веб-части SharePoint - PullRequest
3 голосов
/ 15 октября 2008

Я недавно создал программу, которая анализирует удаленный файл из \ some_server \ c $ \ directory \ file.xls , и она отлично работает на моей локальной машине как обычная страница aspx.

Затем я помещаю программу в веб-часть. форма на моем сервере VM SharePoint, и я получить эту ошибку: доступ к пути '\ Some_server \ с $ \ каталог \ file.xls' отказано.

Файл доступен для Домена \ Прошедших проверку пользователей , поэтому я не уверен, почему в нем будет отказано? Возможно ли, чтобы мой SharePoint пытался вызвать его с локальной или сетевой учетной записью? Как я могу заставить это читать? Спасибо.

Ответы [ 7 ]

3 голосов
/ 15 октября 2008

Саламандра прав, SharePoint не работает с доверием, чтобы сделать это.

Изменение уровня доверия для SharePoint в его файле web.config с WSS_Medium на Full является быстрым решением, но оно имеет последствия для безопасности.

3 голосов
/ 24 октября 2008

Просто короткое замечание, вы можете столкнуться с классической проблемой NTLM Double-Hop. Вы можете пройти проверку подлинности для внешнего интерфейса, но поскольку внешний интерфейс не имеет вашего пароля, он не может затем выполнить проверку подлинности для ресурса на другом сервере.

Запуск с повышенными привилегиями и установка разрешений на основе удостоверения пула приложений может стать одним из способов продвижения вперед.

2 голосов
/ 17 октября 2008

Я думаю, вам понадобится RunWithElevatedPrivleges, который заставит SharePoint использовать учетную запись пула приложений. Также имейте в виду, что вам необходимо убедиться, что учетная запись пула приложений имеет доступ к этой сетевой папке. Избегайте использования полного доверия.

1 голос
/ 15 октября 2008

Можете ли вы объяснить, что именно для вас делает установка уровня доверия?

Я думаю, что если ваша идентификация пула приложений является учетной записью домена, вы можете использовать SPSecurity.RunWithElevatedPrivileges, чтобы использовать учетные данные пула приложений для доступа к файлу. Или используйте impersonate для явной передачи учетных данных другой учетной записи.

0 голосов
/ 18 октября 2008

Почему бы не сохранить файл в SharePoint, чтобы иметь лучший доступ к нему? Поместите его в скрытую библиотеку и получите к нему доступ, используя SPSecurity.RunWithElevatedPrivledges.

Есть предостережения для RWEP. Любая ссылка на SPSite и SPWeb, полученная из SPContext (т. Е. SPContext.Current.Site), будет по-прежнему выполняться под привилегиями зарегистрированного пользователя. Вы должны явно создать ссылку внутри делегата RWEP.

SPSecurity.RunWithElevatedPrivileges (делегат () { используя (сайт SPSite = новый сайт SPSite (SPContext.Current.Site.Url)) { использование (SPWeb web = site.OpenWeb ()) { // ... сделать что-нибудь с SPWeb } } });

Если вам нужен доступ к файлу извне sharepoint для обновления его существующими процессами, вы можете использовать путь к файлу, который доступен для всех SPDocumentLibrary, но перейдите в Действия -> Открыть с помощью проводника Windows, чтобы получить сетевой путь.

0 голосов
/ 15 октября 2008

Я думаю, что для доступа к сетевому пути ваш код должен выполняться в режиме FULL TRUST, чего, как я думаю, не в SharePoint.

0 голосов
/ 15 октября 2008

SharePoint обычно работает в отдельном пуле приложений. Пожалуйста, проверьте подлинность этого пула приложений.

...