强名称程序集(strong name assembly)——为程序集赋予强名称

简介:          引言:                 在以前的项目开发中,在程序集中见到过一个后缀为*.snk的文件,当时看这个文件的图标,感觉可能是企业内部保护版权啥的一种方式。  一,强程序集解决了哪些问题?1,唯一标识一个程序集2,放置程序集被仿冒和被篡改。




         引言

                 在以前的项目开发中,在程序集中见到过一个后缀为*.snk的文件,当时看这个文件的图标,感觉可能是企业内部保护版权啥的一种方式。



  一,强程序集解决了哪些问题?


1,唯一标识一个程序集

2,放置程序集被仿冒和被篡改。

3,可以部署到全局程序集缓存(GAC:GlobalAssembly Cache)中;在将强名称程序集不熟在GAC当中以后,强名称程序集也可以称为共享程序集(shared assembly



二,强名称与GAC

        

强名称:

定义了一个规则,不单单以文件名来区分程序集,这个规则就是强名称。

 

GAC

定义一个特殊的文件夹,这个文件夹能够识别这种规则,并且允许文件名相同的文件存在,这个特殊的文件夹就是GAC


三,为程序集赋予强名称


         打开VS 开发人员命令提示工具:





              首先,我们来创建公钥私钥文件,使用 sn -k命令:


             


         然后我们会发现在此文件夹下创建LHC.snk成功:


           

需要注意的地方:

1,每次调用sn时候,创建的私钥/密钥对文件都不相同,不仅自己的计算机每次生成的不同,其他所有计算机生成的也不相同。

2,关于这个文件的命名,如果是个人,可以以自己的名字命名;如果是团队,,组织火公司,可以以组织名称来命名。

3,在大多数情况下,个人和组织只需要一个snk文件就可以了,以后创建强名称的时候,都使用这个snk文件。由于会使用snk文件的私钥对强名称程序集进行签名,因此这个文件必须严密保护。

 

上面创建的LHC.snk里面既包含公钥,也包含私钥。公钥可以使用sn.exe查看,但是私钥无法查看。




    如果需要查看公钥的话,可以使用 sn -p命令:


    


      之后使用sn -tp命令查看*.pk文件:


     




     创建好这个公钥私钥文件之后,我们就可以使用它来标识程序集的唯一性了。



     在需要设置的程序集中,为此程序集设置签名属性:





        



       保存之后再观察此程序集,会发现多出来一个文件:



      







目录
相关文章
|
应用服务中间件 nginx
nginx优化:URI过长或request header过大导致400或414报错
当出现URI过长或请求头过大导致400或414报错时,可以通过以下方式对Nginx进行优化: 1. 调整client_max_body_size参数:该参数用于限制请求体的大小。默认情况下,Nginx的client_max_body_size参数设置为1M。如果请求体超过这个大小,Nginx会返回400错误。您可以根据实际需求适当增加这个值,例如设置为10M或更大。 ``` http { client_max_body_size 10M; } ``` 2. 调整large_client_header_buffers参数:该参数用于调整请求头缓冲区的大
7489 0
|
传感器 数据采集 监控
上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享
在网上收集了接近上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享(涵盖了大部分的毕设课设题目),学习单片机的最好教程,也可以作为帮助大家在做电子课设毕设时有利的帮助,可以从以下百度网盘下载(按照编号下载)。
2770 0
上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享
|
Web App开发 数据可视化 前端开发
测试篇:性能监测之Performance、LightHouse 与性能 API
测试篇:性能监测之Performance、LightHouse 与性能 API
测试篇:性能监测之Performance、LightHouse 与性能 API
|
云安全 存储 监控
云计算安全:AWS与Azure的安全策略与实践比较
【10月更文挑战第26天】本文详细比较了AWS和Azure在安全性方面的策略和实践,涵盖身份与访问管理、数据加密与保护以及安全监控与响应。通过代码示例展示了两家云服务提供商在实际应用中的具体操作,帮助企业在选择云服务时做出明智决策。
285 0
|
前端开发 应用服务中间件 定位技术
Nginx 如何代理转发传递真实 ip 地址?
【10月更文挑战第32天】
2626 5
Nginx 如何代理转发传递真实 ip 地址?
|
存储 机器学习/深度学习 移动开发
汇编语言指令系列
汇编语言指令系列
2767 0
|
Shell Python
如何将PyCharm中的终端运行前面的PS如何修改成当前环境
这篇文章介绍了如何在PyCharm的终端中修改命令提示符(PS)以反映当前激活的环境,通过更改PyCharm设置中的Shell Path实现。
|
编解码 算法 BI
增强型植被指数EVI、ndvi数据、NPP数据、GPP数据、土地利用数据、植被类型数据、降雨量数据
增强型植被指数EVI、ndvi数据、NPP数据、GPP数据、土地利用数据、植被类型数据、降雨量数据
增强型植被指数EVI、ndvi数据、NPP数据、GPP数据、土地利用数据、植被类型数据、降雨量数据