PageViewer WebPart не загружает URL с параметрами GET - PullRequest
2 голосов
/ 17 июля 2009

Мне нужно показать внешний веб-сайт на моем портале SharePoint, поэтому я добавил PageViewerWebPart. Но URL-адрес включает параметры входа в систему, например www.mywebsite.com? Login = X & passwd = Y .

Я пытался добавить ASP-код в свойстве ContentLink PageViewer:

<WebPartPages:PageViewerWebPart runat="server" ContentLink="<% ="URL" %>" ... />

Возвращает эту ошибку: серверные теги не могут содержать инструкции <% ...%>.

Существуют ли другие свойства, которые позволяют загружать URL с параметрами GET? Могу ли я поместить этот код в CodeBehind моего WebPartPage? Я действительно делаю это неправильно ...?

Любая помощь будет очень признательна!

Тимоти Мартин.

Ответы [ 2 ]

3 голосов
/ 17 июля 2009

Хотя я считаю плохой идеей помещать учетные данные пользователя в URL (каждый сможет увидеть это, просмотрев HTML-код страницы), вот как вы можете выполнить то, что вы хотите сделать:

Создайте новый проект библиотеки классов с классом, который наследуется от Microsoft.SharePoint.WebPartPages.WebPartPage. Что-то вроде:

namespace MyNameSpace.WebPagePages
{
    public class MyWebPartPage : Microsoft.SharePoint.WebPartPages.WebPartPage
    {
        protected Microsoft.SharePoint.WebPartPages.PageViewerWebPart myPageViewerWebPart;

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            // logic to create your URL
            string url = "http://blah/blah";

            // set the URL
            myPageViewerWebPart.ContentLink = url;
        }
    }
}

Вам нужно будет подписать сборку и развернуть ее в GAC. Использование SharePoint Solution (WSP) - рекомендуемый способ сделать это (но не суть этого ответа).

Теперь вам нужно изменить страницу ASPX, содержащую вашу веб-часть, следующим образом:

  1. Измените атрибут Inherits директивы <%@ Page %> на полное имя типа указанного выше класса. Это будет выглядеть примерно так: MyNameSpace.WebPagePages.MyWebPartPage, MyNameSpace.WebPagePages, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = b538f318242c0b01
  2. Дайте веб-части атрибут ID со значением, совпадающим с именем веб-части в классе code-behind. В этом примере: <WebPartPages:PageViewerWebPart runat="server" ID="myPageViewerWebPart">

Это должно сделать это. Если вы не делали этого раньше, создание класса и его развертывание в GAC будет непростым делом, но это легко, когда вы знаете, как. Такие инструменты, как VSeWSS , STSDEV и WSPBuilder (сначала изучите один, а затем попробуйте другие), помогут вам достичь этого путем создания файлов WSP (решения SharePoint) - то, что я настоятельно рекомендую вам воспользоваться.

0 голосов
/ 17 июля 2009

Если приведенный выше код присутствует на странице макета, то да, <%%> не допускается на страницах макета. Я рекомендую вам установить ссылку в коде на стороне сервера. Но если вы все еще хотите использовать <%%>, обратитесь к этой ссылке , чтобы узнать, как это сделать.

...