asp.net - 页面查看器 Web 部件不会加载带有 GET 参数的 URL

标签 asp.net sharepoint web-parts

我需要在我的 SharePoint 门户中显示外部网站,因此我添加了 PageViewerWebPart。但 URL 包含登录参数,如 www.mywebsite.com?login=X&passwd=Y .

我尝试在 ContentLink PageViewer 属性中添加 ASP 代码,如下所示:

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

它返回给我这个错误:服务器标签不能包含 <% ... %> 指令。

是否存在其他允许使用 GET 参数加载 URL 的属性? 我可以将此代码放入 WebPartPage 的 CodeBehind 中吗? 我真的做错了吗...?

任何帮助将非常感激!

蒂莫西·马丁。

最佳答案

虽然我认为将用户的凭据放在 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 解决方案 (WSP) 来执行此操作(但不是本答案的重点)。

您现在需要修改包含 Web 部件的 ASPX 页面,如下所示:

  1. 更改 Inherits <%@ Page %> 的属性指向上述类的完全限定类型名称的指令。它看起来像:MyNameSpace.WebPagePages.MyWebPartPage, MyNameSpace.WebPagePages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b538f318242c0b01
  2. 为 Web 部件指定 ID属性的值与代码隐藏类中 Web 部件的名称相匹配。在此示例中:<WebPartPages:PageViewerWebPart runat="server" ID="myPageViewerWebPart">

应该可以了。如果您以前没有这样做过,那么创建类并将其部署到 GAC 将是比较棘手的部分,但是当您知道如何操作时,它们就会很容易。像VSeWSS这样的工具, STSDEV ,和 WSPBuilder (先学习一个,然后尝试其他)将帮助您通过创建 WSP 文件(SharePoint 解决方案)来实现这一目标 - 我强烈建议您利用这一点。

关于asp.net - 页面查看器 Web 部件不会加载带有 GET 参数的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1142865/

相关文章:

sharepoint - 网站定义中的 Web 部件连接

sharepoint - 调试 SharePoint 页面布局中的 WebPart 错误

asp.net - jQuery 的 $.ajax() 函数是否正确处理 ASP.NET 身份验证?

从其他列表中提取的 SharePoint 列表

sharepoint - 使用 GRAPH API 按文件名搜索文档库

javascript - 阅读 SharePoint 分类术语库和 getDefaultLabel(lcid)

c# - ASP.NET 中继器交替行突出显示没有完全成熟 <alternatingitemtemplate/>

asp.net - 如何为文本格式设置 div 元素的边框?

c# - 在下拉列表中显示层次结构

sharepoint - 尝试部署 Web 部件时出错