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

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

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

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

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

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


person BenB    schedule 22.09.2008    source источник


Ответы (4)


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

SPContext.Current.Web.CurrentUser.LoginName

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

person Alex Angas    schedule 22.09.2008

Большое спасибо за ответы!

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

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

person BenB    schedule 25.09.2008

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

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

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

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

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

person Lou Franco    schedule 22.09.2008

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

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

person Bryan Friedman    schedule 22.09.2008