Перенаправление пользователя из старой сети в другую в Sharepoint - PullRequest
0 голосов
/ 07 апреля 2010

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

URL старого сайта:

http://sharepoint/mySite/default.aspx

URL нового сайта:

http://sharepoint/myNewSite/...

В mySite есть много других страниц, большинство из которых необходимо перенаправить на новый сайт, но есть исключения (например, пользователь все еще может просматривать документы на сайте). Я думал, что должен сделать это программно, каким-то образом захватывая http-запрос и читая URL-адрес самостоятельно. Будучи не гуру sharepoint, у меня был быстрый гугл, и я обнаружил, что написание веб-части - лучшая альтернатива моей ситуации.

Но мне просто интересно, учитывая мою ситуацию и потребности, пишет ли веб-часть или что-то программно, действительно ли идеальное решение? Или есть более быстрый и быстрый способ добиться того, чего я хочу, используя Sharepoint?

Спасибо.

Ответы [ 5 ]

2 голосов
/ 07 апреля 2010

Вы можете реализовать System.Web.IHttpModule, который прослушивает событие System.Web.HttpApplication.BeginRequest, определяет, указывает ли URL-адрес запроса на старый сайт и, при необходимости, перенаправляет на новый сайт.

Часть Sharepoint этого включает создание Microsoft.SharePoint.Administration.SPWebConfigModification, которое добавляет ссылку на ваш модуль в файл web.config каждого имеющегося у вас веб-интерфейса. Если бы вы реализовали это как функцию уровня веб-приложения, код для метода активации получателя функции будет выглядеть примерно так:

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
    var webApplication = (SPWebApplication)properties.Feature.Parent;
    var redirectionModuleType = typeof(MyRedirectionModule);
    var modification = new SPWebConfigModification()
    {
        Name = "add[@name='MyRedirectionModule']",
        Path = "configuration/system.web/httpModules",
        Owner = "MyModule",
        Sequence = 0,
        Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode,
        Value = "<add name=\"MyRedirectionModule\" type=\"" + redirectionModuleType.FullName + ", " + redirectionModuleType.Assembly.FullName + "\" />"
    };
    webApplication.WebConfigModifications.Add(modification);
    webApplication.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
    webApplication.Update();
}
0 голосов
/ 08 апреля 2010

Кто-то уже сделал это для вас:)

См. Функция SharePoint Smart 404 . Он позволяет добавлять правила перенаправления для создания тщеславных URL-адресов и удобной обработки 404-х.

0 голосов
/ 08 апреля 2010

Если вы используете балансировщик нагрузки или обратный прокси-сервер, такой как ISA Server, вы можете реализовать правила перенаправления на этих уровнях.

0 голосов
/ 07 апреля 2010

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

Взгляните на наш бесплатный инструмент SharePoint Infuser .

0 голосов
/ 07 апреля 2010

Вы можете сделать это тремя способами

  1. создание собственного модуля HTTP (хорошее решение)
  2. Написать код javascript на главной странице старого сайта для перенаправления на новую страницу (location.href) (легко создать, но навигация происходит со стороны клиента)
  3. Написать веб-часть с кодом для перенаправления и развернуть ее на главной странице старого сайта (проще, чем point1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...