相关疑难解决方法(0)

枚举强名称CSP的容器名称

我正在尝试找到一些有关如何(如果可能的话)枚举强名称CSP(加密服务提供程序)中的所有容器名称的信息.

实质上,当您键入时sn.exe -i key.snk MyContainerName,公钥和私钥对存储在所谓的"容器"中.稍后,在您的代码中,您可以指定容器名称AssemblyKeyNameAttribute,例如:

[assembly: AssemblyKeyName("MyContainerName")]
Run Code Online (Sandbox Code Playgroud)

这将导致程序集在编译时签名.

我试图找出是否有可能以某种方式枚举所有容器名称.我正在为ReSharper编写一个插件,InternalsVisibleTo属性提供代码完成.我还想为AssemblyKeyName属性提供代码完成,我将使用已知的容器名称预先填充列表.

这些信息是否可访问?

编辑:从IT Security StackExchange 对这个问题的评论中,有一个名为KeyPal的小工具的链接.运行此实用程序LM将转储本地计算机密钥存储区:

--------- KeyPal:  MACHINE store: 3 keycontainers ---------
[0] VS_KEY_F726FDF898BC4CB8
     Signature 1024
[1] IIS Express Development Certificate Container
     Exchange  1024
     CertE: CN=localhost
[2] MyContainerName
     Signature 1024
-------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我可以看到[0]和[2]都是有效的容器名称AssemblyKeyName.但是,有[1]一个 - "IIS Express ...",它不是一个有效的容器.我如何区分它们?

.net strong-named-key

12
推荐指数
1
解决办法
2326
查看次数

标签 统计

.net ×1

strong-named-key ×1