【问题标题】:How to Publish InfoPath (which is fulltrusted having codebehid code ) in sharePoint?如何在 sharePoint 中发布 InfoPath(具有完全信任的代码隐藏代码)?
【发布时间】:2010-07-13 13:48:51
【问题描述】:

我创建了一个包含 C# 代码的 InfoPath 表单,并且我提供的安全选项是“完全受信任”以访问 infopath 对象模型,并且应该使用浏览器打开它。最后我将 Infopath 表单发布到 SharePoint(通过使用 admin-批准)网站。

但是当我尝试打开时,它没有打开并给出错误“InfoPath 无法创建新表单或空白表单 InfoPath 无法打开表单,要解决此问题,请联系您的系统管理员”

并错误地显示详细信息,并给出以下消息。 '表单模板正在尝试访问您计算机上的文件和设置。 InfoPath 无法授予对这些文件和设置的访问权限,因为表单模板不完全受信任。要以完全信任的方式运行表单,必须安装它或使用证书进行数字签名。

请给我一个解决方案。

【问题讨论】:

    标签: sharepoint forms infopath


    【解决方案1】:

    不幸的是,如果您在 C# 代码中使用任何文件系统调用,那么您将不得不保留完全受信任的设置。正如错误消息所说,任何完全受信任的表单都必须安装或具有与之关联的证书才能运行。当 Infopath 在用户机器上运行时,它实际上只是一个美化的网页 - 您不希望网页在用户不知情的情况下不安全地运行并拥有对机器的完全权限。

    只有当表单访问本地资源(单个硬盘驱动器)时,您才需要完全信任。如果您不包含用于文件/目录访问的 C# 库,则域信任应该足够了,并且表单可以正常工作。 (数据库访问、网络服务等不是本地的,将在域级别下工作)。

    【讨论】:

    • 这是一个旧答案,但我现在遇到了完全相同的问题。我确实编写了自己的 C#,它确实访问(读取和写入)本地文件(它只是本地文件)。问题是我的公司不允许打开完整的信任表格。没有办法解决这个问题。所以我确实需要将安全设置设置为域。有没有什么办法,比如改变我的代码或其他东西,仍然让它读写?我目前使用以下内容: string currentDirect = Directory.GetCurrentDirectory();还有 this.SaveAs(currentDirect + "/" + projectTitle + ".XML");
    【解决方案2】:

    在表单设置中,将启用浏览器的文档更改为“显示为网页”。 它解决了问题:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      • 2017-10-19
      • 2012-10-29
      相关资源
      最近更新 更多