【问题标题】:Can an Iframe load its contents at the server side rather than client side?Iframe 可以在服务器端而不是客户端加载其内容吗?
【发布时间】:2011-05-28 18:32:13
【问题描述】:

我知道设置 runat="server" 并为 iframe 控件指定 id 可以在服务器端访问它,但我需要的是 iframe 源内容在服务器端而不是客户端加载。

有可能吗?

为什么我需要这种方式?

目前我的 iframe 源站点配置为 ntlm 身份验证和 sso,这意味着它会读取我的 Windows 凭据,而我需要它读取托管该 iframe 的站点提供的凭据。

谢谢

【问题讨论】:

    标签: asp.net html iframe server-side


    【解决方案1】:

    不,设置 iframe 标记的 runat="server" 属性将允许您在服务器端修改它的属性,但 iframe 的源仍会从客户端下载。

    【讨论】:

    • 如何在不使用src的情况下设置iframe的innerHtml?例如
    • 找到了:window['iframeId'].document.body.innerHTML = 'hello';
    • 我在 Accordion Control 中使用了 iframe,在 findcontrol 时我如何才能在服务器端获得它?是 HtmlGenericControl 吗?
    【解决方案2】:

    不,那是做不到的。这不是事情的运作方式。如果需要在服务器端加载内容,可以使用WebRequest 类。但我怀疑那是你想要的。我认为您需要重新考虑您的应用程序设计。

    【讨论】:

    • 谢谢。那么是否可以使用 webrequest 发出请求并将其结果设置为服务器端的 iframe?
    • @Dynamic。不,iframe 不能使用网络请求的结果。但是您可以在页面的占位符中发出 html。但这不是正确的解决方案。正确的解决方案是让您的用户使用您在 iframe 中显示的网站进行正确身份验证。
    • 谢谢。我在身份验证方面遇到的问题是 iframe 的源站点确实支持 ntlm 和 sso。主机站点(即共享点)确实支持没有 sso 的 ntlm。所以我需要将 sharepoint 的凭据传递给 iframe 站点,该站点不一定是相同的 Windows 身份。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    相关资源
    最近更新 更多