Хотя я считаю плохой идеей помещать учетные данные пользователя в 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, содержащую вашу веб-часть, следующим образом:
- Измените атрибут
Inherits
директивы <%@ Page %>
на полное имя типа указанного выше класса. Это будет выглядеть примерно так: MyNameSpace.WebPagePages.MyWebPartPage, MyNameSpace.WebPagePages, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = b538f318242c0b01
- Дайте веб-части атрибут
ID
со значением, совпадающим с именем веб-части в классе code-behind. В этом примере: <WebPartPages:PageViewerWebPart runat="server" ID="myPageViewerWebPart">
Это должно сделать это. Если вы не делали этого раньше, создание класса и его развертывание в GAC будет непростым делом, но это легко, когда вы знаете, как. Такие инструменты, как VSeWSS , STSDEV и WSPBuilder (сначала изучите один, а затем попробуйте другие), помогут вам достичь этого путем создания файлов WSP (решения SharePoint) - то, что я настоятельно рекомендую вам воспользоваться.