Получение (общедоступного) интернет-URL для сайта портала Sharepoint - PullRequest
3 голосов
/ 04 апреля 2009

У меня есть собственный рабочий процесс infopath, который позволяет пользователям отправлять отчеты expesne. Всякий раз, когда кто-то представляет отчет о расходах в библиотеке форм, запускается рабочий процесс. Рабочий процесс проверяет weburl и с помощью универсального метода создает ссылку, указывающую на элемент рабочего процесса, и отправляет эту ссылку по почте отправителю и утверждающим.

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

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

Ответы [ 3 ]

3 голосов
/ 16 июня 2009

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

Вы можете получить URL для любой зоны с помощью следующего кода

SPContext.Current.Site.WebApplication.GetResponseUri(Microsoft.SharePoint.Administration.SPUrlZone.Default).AbsoluteUri
2 голосов
/ 18 июня 2009

Вы можете всегда получать URL-адреса из определенной зоны, создав новый объект SPSite и указав для него зону в конструкторе. В вашем случае вы можете попробовать использовать зону По умолчанию (например, SharePoint использует URL-адреса из этой зоны при отправке электронных писем) или зону Интернет . У вас есть небольшой образец ниже:

using(SPSite site = new SPSite(currentSiteId, SPUrlZone.Default)
{
    string publicUrl = site.MakeFullUrl(serverRelativeUrl);
    // note that MakeFullUrl takes a server relative url not a site relative one
}
0 голосов
/ 15 апреля 2009

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

Вот что я хотел бы сделать: я бы настроил простой веб-сайт с DNS-сервером, который имеет одну страницу, предоставляющую объект рабочего процесса. Таким образом, вы можете просто использовать этот сайт в качестве базы для ссылки в уведомлении.

Пример: у меня есть движок HTML-форм, который я написал некоторое время назад. Клиент только что попросил, чтобы он был доступен в Интернете. Я создал новый сайт в IIS, прокси-прокси IP-адрес, и вуаля, мое интранет-приложение открыто для Интернета. Конечно, есть проблемы с безопасностью и небольшие интрасети, о которых нужно было позаботиться, но ничего особенного.

Надеюсь, это поможет.

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