要对程序集 A 进行签名,您必须确保对 A 使用的所有程序集 B、C、D 进行签名,然后对 B、C、D 等使用的所有程序集进行签名。我不明白这有什么安全好处。我认为它应该防止篡改,但是允许程序集 A 打开任何文件,并且这些文件可以被篡改。外部网络服务器也是如此。
此外,使用公开的 .snk 文件对程序集进行签名太容易了,绕过了要求。
最佳答案
关键是,否则你可以用一个不同的(被黑的)替换组件 B/C/D,而 A 永远不会注意到;它会加载它们并执行代码。使用强命名,您不能在不使用相同 key 重新签署被黑的 B/C/D 或通过黑 A 的情况下执行此操作。
关于.net - 为什么强命名程序集不能使用未签名的程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/868799/