Отображение текущего аутентифицированного пользователя Sharepoint из веб-части средства просмотра страниц asp.net

StackOverflow https://stackoverflow.com/questions/112818

Вопрос

Я создаю отдельную страницу asp.net, которую необходимо внедрить в сайт SharePoint с помощью веб-части средства просмотра страниц.Страница asp.net публикуется на том же сервере через другой порт, что дает мне URL-адрес для встраивания.

Требование заключается в том, что после проверки подлинности пользователя с использованием проверки подлинности Sharepoint он переходит на страницу, содержащую веб-часть asp.net, для получения дополнительных параметров.

Что мне нужно сделать на этой странице asp.net, так это запросить в Sharepoint текущее аутентифицированное имя пользователя, а затем отобразить его на странице из кода asp.net.

Все это работает нормально, когда я отлаживаю приложение из VS, но при публикации и отображении через Sharepoint я всегда получаю NULL как пользователь.

Любые предложения о том, как лучше всего заставить это работать, будут высоко оценены.

Это было полезно?

Решение

Если вы хотите получить текущего пользователя, прошедшего проверку подлинности, из контекста SharePoint, вам необходимо оставаться в контексте SharePoint.Это означает размещение вашего пользовательского веб-приложения в SharePoint (см. http://msdn.microsoft.com/en-us/library/cc297200.aspx).Затем из вашего пользовательского приложения укажите ссылку на Microsoft.SharePoint и используйте объект SPContext для получения имени пользователя.Например:

SPContext.Current.Web.CurrentUser.LoginName

Вы по-прежнему можете использовать веб-часть средства просмотра страниц для ссылки на URL-адрес сайта, который теперь находится в контексте SharePoint.

Другие советы

Спасибо огромное за ответы!

Оказывается, пока страница asp.net использует тот же URL-адрес и порт, что и сайт Sharepoint, аутентификация работает на обоих сайтах.

Решение состоит в том, чтобы использовать виртуальный каталог внутри сайта SharePoint и установить там страницу asp.net.

Когда это работает в режиме отладки, используется ли это в SharePoint?

Ваша страница и сайт Sharepoint также могут находиться на разных серверах, что касается аутентификации. Чтобы получить информацию, вам может потребоваться передать ее через QueryString из веб-части, если вы можете, или вам может потребоваться это сделать. создайте для этого свою собственную веб-часть (просто поместите IFRAME в часть с src, установленным на вашей странице, с QueryString, передающим имя пользователя).

Кажется, что это будет проблемой безопасности, если вы используете имя для чего-либо - если вы просто отображаете его, то, вероятно, все в порядке.

Если вам действительно необходимо пройти аутентификацию, возможно, вам придется добавить аутентификацию в файл web.config сайта, на котором размещена ваша отдельная страница.

редактировать:Я думаю, вам лучше поместить свою страницу на тот же порт и сервер, что и SharePoint.

Я подозреваю, что вам будет сложно конкретно запросить у SharePoint текущее имя пользователя, аутентифицированное.Я не могу придумать способ легко получить доступ к контексту SharePoint из отдельного веб-приложения, как вы описываете.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top