liuyilin888 2015-03-11 10:08 采纳率: 0%
浏览 2040

Win7下强名称验证失效?

首先编译一个带强名的程序集,然后用十六进制工具打开,修改任何一个无关紧要的字节,保存

好了,就会发现这个程序集在Win7下可以正常运行,在XP会报错

微软说:引自http://msdn.microsoft.com/zh-cn/library/cc713694(v=VS.90).aspx :
从 .NET Framework 3.5 Service Pack 1 (SP1) 开始,在将程序集载入完全信任 AppDomain 对象(例如 MyComputer 区域的默认 AppDomain)时,将不验证强名称签名。这称为强名称跳过功能


那在XP下,怎么装.NET Framework 3.5 Service Pack 1 (SP1) .NET Framework 4强名称验证也没有失效!

  • 写回答

1条回答 默认 最新

  • save4me 2015-03-12 08:50
    关注

    参考.net 强名称被跳过

    重要说明:
    是否能强制执行强名称验证取决于注册表项,如下面的过程所述。如果运行应用程序时使用的帐户没有访问该注册表项的访问控制列表 (ACL) 权限,该设置将无效。必须确保配置此注册表项的 ACL 权限,以使所有程序集都能读取此项。
    对所有应用程序禁用强名称跳过功能
    在 32 位计算机上,在系统注册表中的 HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFramework 项下创建一个子项。使用 DWORD 值为 0 的项名称 AllowStrongNameBypass。

    • 或 -

    在 64 位计算机上,在系统注册表中的 HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFramework 项下创建一个子项。使用 DWORD 值为 0 的项名称 AllowStrongNameBypass。在 HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.NETFramework 项下创建相同的子项。
    对单个应用程序禁用强名称跳过功能
    打开或创建应用程序配置文件。
    有关此文件的更多信息,请参见应用程序配置文件。

    添加下面的项:

    <configuration>
      <runtime>
         < bypassTrustedAppStrongNames enabled="false" />
      </runtime>
    </configuration>
    

    可通过移除该配置文件设置或将该属性设置为“true”为该应用程序恢复跳过功能。

    说明:
    只有在已为计算机启用跳过功能的情况下,才能为应用程序打开和关闭强名称验证。如果已为计算机关闭跳过功能,则将对所有应用程序验证强名称,并且不能对单个应用程序跳过验证。

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集