2008-09-22 3 views
5

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

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

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

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

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

ответ

7

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

SPContext.Current.Web.CurrentUser.LoginName 

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

0

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

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

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

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

Редактировать: Мне кажется, вам повезло, если бы ваша страница была на том же порту и сервере, что и SharePoint.

+0

нет, в режиме отладки он является автономным – BenB 2008-09-22 02:17:22

0

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

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

1

Спасибо за кучи ответов!

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

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

Смежные вопросы

 Смежные вопросы