C# 将添加到Excel加载项项目

C# 将添加到Excel加载项项目,c#,excel,add-in,C#,Excel,Add In,我最近不得不接管一个Excel插件项目,我遇到的一个问题是,客户不能使用该插件,因为他们的信任中心只允许由受信任的发布者签名的COM插件。他们无法禁用它 我是个新手,不太理解这个签名问题,所以我自己对代码进行了签名 但是外接程序的发布服务器设置为“无”。下面是它的表现 我相信这不是我需要做的,对吗?客户信任中心不会信任自签名 我看到了这一幕,但我很不确定到底发生了什么 这是否意味着没有可能的解决办法,或者我弄错了 我想知道但我需要一些帮助的一件事是,如果外接程序需要由可信的发布者签名。。如果客户

我最近不得不接管一个Excel插件项目,我遇到的一个问题是,客户不能使用该插件,因为他们的信任中心只允许由受信任的发布者签名的COM插件。他们无法禁用它

我是个新手,不太理解这个签名问题,所以我自己对代码进行了签名

但是外接程序的发布服务器设置为“无”。下面是它的表现

我相信这不是我需要做的,对吗?客户信任中心不会信任自签名

我看到了这一幕,但我很不确定到底发生了什么

这是否意味着没有可能的解决办法,或者我弄错了


我想知道但我需要一些帮助的一件事是,如果外接程序需要由可信的发布者签名。。如果客户端正在生成.pfx,而我使用它来签署外接程序,那么这会起作用吗?

AFAIK,从开发人员的角度来看,没有什么可以做的。这是一个安全特性。您需要使用有效的证书签署外接程序,以摆脱未知的发布者。您可以通过在VisualStudio的“项目设置”中选择“签名时的证书”选项卡来完成此操作

如果您是一家上市公司/开发人员,并且对您的用户没有任何假设,那么您可以从其中一个公共代码签名证书提供商处获得代码签名证书。以下列出了主要问题: 这不是免费的,您需要向证书颁发机构证明您的身份,例如,向他们提供您的护照/公司注册详细信息等

如果您正在为特定组织开发外接程序,并且您可以与该组织的管理员协商,或者您的用户在其计算机上具有管理员权限,并且被允许干扰安全性,那么您可以创建自签名证书,使用它对代码进行签名,在签名选项卡上选择它,然后要求您的用户或用户的管理员将此自签名证书添加到其组织/电脑上的受信任根目录

请注意,自签名证书通常仅在创建证书并用于测试或开发目的的PC上工作。在您的情况下,这意味着您的自签名证书在您的PC上被视为有效,但在客户的PC上无效。如果您希望您在PC上创建的证书也在客户的PC上工作,则您必须要求客户将您的证书添加为受信任的根,也就是说,将您的签名与上面列表中的全球受信任的认证机构一样对待


不过,通常的做法是从认证机构购买证书。

好吧,从开发人员的角度看,没有什么窍门可以做。这是一个安全特性。您需要使用有效的证书签署外接程序,以摆脱未知的发布者。您可以通过在VisualStudio的“项目设置”中选择“签名时的证书”选项卡来完成此操作

如果您是一家上市公司/开发人员,并且对您的用户没有任何假设,那么您可以从其中一个公共代码签名证书提供商处获得代码签名证书。以下列出了主要问题: 这不是免费的,您需要向证书颁发机构证明您的身份,例如,向他们提供您的护照/公司注册详细信息等

如果您正在为特定组织开发外接程序,并且您可以与该组织的管理员协商,或者您的用户在其计算机上具有管理员权限,并且被允许干扰安全性,那么您可以创建自签名证书,使用它对代码进行签名,在签名选项卡上选择它,然后要求您的用户或用户的管理员将此自签名证书添加到其组织/电脑上的受信任根目录

请注意,自签名证书通常仅在创建证书并用于测试或开发目的的PC上工作。在您的情况下,这意味着您的自签名证书在您的PC上被视为有效,但在客户的PC上无效。如果您希望您在PC上创建的证书也在客户的PC上工作,则您必须要求客户将您的证书添加为受信任的根,也就是说,将您的签名与上面列表中的全球受信任的认证机构一样对待


不过,通常的做法是从认证机构购买证书。

而添加到根目录在理论上是可行的-如果客户的安全要求是可信的,那么我认为他们也无法更改根目录存储。否则,重点是什么?@Hogan你可能是对的:如果他们只激活了受信任的发布者选项,那么他们可能不允许与受信任的root用户发生冲突。但是如果TS在同一个组织工作,那可能没问题。。或者他们可能有内部的可信证书,而添加到根目录理论上是可行的——如果您的
客户机的安全需求是这样的,他们需要可信的,那么我假设他们也不能更改根存储。否则,重点是什么?@Hogan你可能是对的:如果他们只激活了受信任的发布者选项,那么他们可能不允许与受信任的root用户发生冲突。但是如果TS在同一个组织工作,那可能没问题。。或者他们可能有内部的可信证书。