问题标签 [strongname]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
7735 浏览

.net - sn.exe 失败并显示拒绝访问错误消息

当我使用强名称工具创建新密钥以对 .NET 程序集进行签名时,我收到拒绝访问错误消息。这在 Windows XP 机器上运行良好,但在我的 Vista 机器上不起作用。

是什么导致了这个问题,我该如何解决?


您是否以管理员身份运行 PowerShell 或命令提示符?在您习惯用户访问控制或关闭用户访问控制之前,我发现这是第一个查看的地方。

是的,我尝试以管理员身份运行 PS 和常规命令提示符。出现相同的错误消息。

0 投票
5 回答
96826 浏览

.net - .snk 有什么用?

.snk 文件有什么用?我知道它代表Strongly Named Key,但是关于它是什么以及它是如何工作的所有解释都超出了我的想象。

关于如何使用强命名密钥及其工作原理是否有任何简单的解释?

0 投票
1 回答
2876 浏览

c# - 如何为 shdocvw.dll 创建强命名互操作 dll

我在 c# 中有一个 Browser Helper Object 项目,它(显然)引用了 shdocvw.dll。我想我想为 shdocvw.dll 创建一个强命名的互操作 dll。我该怎么做 - 我已经看到了一堆关于 aximp.exe 和 tlimp 的建议,但我不清楚它们是如何组合在一起的。

0 投票
3 回答
13262 浏览

c# - 检查程序集的强名称

是否可以检查动态加载的程序集是否已使用特定的强名称进行签名?

比较从AssemblyName.GetPublicKey()方法返回的值是否足够/安全?

这不能骗人吗?我不确定 SetPublicKey() 方法是否对构建的程序集有任何影响,但即使是 MSDN 文档也显示了如何在动态生成的程序集(反射发射)上使用它,这意味着您可以从托管应用程序并将其注入您自己的程序集中并运行恶意代码,如果上述是安全措施,或者我错过了什么?

有没有更正确和安全的方法?我知道相反的情况是否是这种情况,也就是说,我想保护程序集不被签名主机调用,然后我可以用 StrongNameIdentityPermission 属性标记程序集。

0 投票
16 回答
287374 浏览

c# - 如何修复“引用的程序集没有强名称”错误

我在我的Visual Studio 2005项目(它是强命名的)中添加了一个弱命名的程序集。我现在收到错误:

“引用的程序集 'xxxxxxxx' 没有强名称”

我需要签署这个第三方程序集吗?

0 投票
5 回答
7409 浏览

.net - 可以使用强命名程序集来验证程序集作者吗?

我一直在阅读 MSDN 中的正确文章,Strong-Named Assemblies和相关的 Stack Overflow 问题,Checking an assembly for a strong name

  1. 可以在多大程度上验证强名称程序集以避免篡改?
  2. 是否可以使用强命名来验证程序集作者?

第一个问题出现在阅读 CSharp411 文章.NET Assembly FAQ – Part 3 – Strong Names and Signing之后,其中提到了这一点,以及使用强名称的其他问题:

"无法停止完全替换。强名称无法阻止黑客删除强名称签名,恶意修改您的程序集,用自己的密钥重新签名,然后将他的程序集冒充为您的。 "

第二个问题旨在找出强命名和其他签名方案(例如Authenticode )之间的区别。同一篇 MSDN 文章提到了早期状态:

"但是请注意,强名称本身并不意味着像数字签名和支持证书所提供的那样的信任级别。 "

我是否试图将强命名用于比创建它时更多的用途?创建强命名是为了避免名称冲突还是一种新的“GAC DLL Hell”?

0 投票
3 回答
1538 浏览

c# - 如何仅将签名程序集加载到新的 AppDomain?

我正在做一个插件系统,其中主应用程序在新 AppDomain 的运行时加载程序集 Addin1.dll 和 Addin2.dll。

但是,如果 Addin1.dll 使用我的密钥签名(强名称)而 Addin2.dll 没有,我希望能够只加载 Addin1.dll 并拒绝 Addin2.dll。

我怀疑需要通过在 AppDomainSetup 中设置一些参数来完成?

0 投票
2 回答
744 浏览

.net - 我是否需要为每个版本的强命名库创建一个新的 .snk 密钥文件?

如果我用 .snk 文件强命名类库,如果我创建同一个库的新版本,是否需要用新的替换这个 .snk 文件?

0 投票
3 回答
2326 浏览

.net - .NET 开源项目和强命名程序集?

我目前正在考虑开源我的一个项目,并且正在准备要向公众发布的源代码和项目结构。现在我有一个问题:我应该如何处理我的程序集的签名密钥?我应该为开源版本创建一个新密钥并将其与其他文件一起发布到 SVN 存储库吗?我应该把密钥放在外面,每个想要编译代码的人都应该生成自己的密钥吗?

你怎么处理这个?我对向公众发布签名密钥感到有点不舒服。

0 投票
2 回答
2659 浏览

.net - 如何签署由 ILMerge 操作生成的程序集?

我设法使用 ILMerge 将项目中的所有程序集合并到一个程序集中,但问题是似乎没有办法对合并的程序集进行签名。

是否有某种可以运行的命令行选项或命令让我向 ILMerge 生成的合并程序集添加一个强名称?