swig编译GDAL的C#库时遇到的代码安全问题及解决方法

  之前一直用的是别人编译好的gdal库开发,今天自己编译了gdal的2.0.0版本,踩了不少坑,但总算解决了。

  编译方法主要参考http://blog.csdn.net/liminlu0314/article/details/6945452,踩到的坑及解决方法参考http://www.cnblogs.com/yeahgis/archive/2013/04/10/3011553.html。但是yeahgis前辈没有很好地解决安全透明代码无法调用本机C++代码的问题,给每个类添加安全等级声明太麻烦了。通过查阅资料,把%gdal_code%\swig\csharp\AssemblyInfo.cs里的安全描述改为

// The AllowPartiallyTrustedCallersAttribute requires the assembly to be signed with a strong name key.
// This attribute is necessary since the control is called by either an intranet or Internet
// Web page that should be running under restricted permissions.
//[assembly: SecurityCritical]

// Use the .NET Framework 2.0 transparency rules (level 1 transparency) as default
#if (CLR4)
[assembly: SecurityRules(SecurityRuleSet.Level2)]
#endif

就不会出现代码安全等级问题了。

  .NET的代码安全由[assembly: SecurityCritical]和[assembly: SecurityRules(SecurityRuleSet.Level2)]共同决定,程序集范围批注有NONE、SecurityTransparent、SecurityCritical、AllowPartiallyTrustedCallers四种特性,SecurityRuleSet有Level1、Level2两个级别,组合后的安全等级描述如下

本次编译中我选择NONE、Level2,安全等级就够用了。

附:代码访问安全性基础知识 https://msdn.microsoft.com/zh-cn/library/dd233102.aspx

时间: 2024-10-07 00:41:40

swig编译GDAL的C#库时遇到的代码安全问题及解决方法的相关文章

编译pqxx源码configure时遇到codecs.py LookupError的解决方法

之前第一次编译的时候没有出现问题,第二次重新编译时./configure报错: File "/usr/lib/python2.7/posixpath.py", line 73, in join path += '/' + b UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 13: ordinal not in range(128) 查知可在报错的文件/usr/lib/python/posixpat

使用C++自带库时遇到的Bug们及解决方法

每个问题的具体原因可能因平台和编译器的不同而异,这里仅记录个人的解决方案,仅供参考. x64, VS2019 使用的random_device时若报错'class std::random_device' has no member named 'generate',可以试试加上using namespace std;.不知道具体原因,但这样做确实不报错了.而且在我的电脑上是,VS Code报错,但VS上正常运行. 原文地址:https://www.cnblogs.com/saltedreed/p

DBCA建库时Error in invoking target 'collector' 解决办法

如果安装进度大约到65%时有错误提示: Error in invoking target 'collector' of makefile '/u01/app/oracle/product/10.2.0/db_1/sysman/lib/ins_emdb.mk'. 该错误直接跳过即可. INFO: /usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib/snmccolm.

win7,M?i?n?d?m?a?n?a?g?e?r?2?0?1?2使用模板时弹出Runtime error R6025解决方法

Mindjet.MindManager2012.v10.0在应用个别模板时提示"参数错误",然后自动关闭. 解决办法: 如果是win7系统,可以进入C:\Users\(用户名)\AppData\Local\Mindjet\MindManager\10\Library\ENU\Templates, 可以看到如下模板:Management/Meetings and Events/Personal Productivity/Problem Solving/Project Management

universal image loader在listview/gridview中滚动时重复加载图片的问题及解决方法

在listview/gridview中使用UIL来display每个item的图片,当图片数量较多需要滑动滚动时会出现卡顿,而且加载过的图片再次上翻后依然会重复加载(显示设置好的加载中图片) 最近在使用UIL遇到了这个问题,相信这个问题许多使用UIL的人都碰到过 现在把解决方法贴出来给有同样问题的朋友做参考 先看下UIL的工作流程 在已经允许内存,存储卡缓存的前提下,当一个图片被请求display时,首先要判断图片是否缓存在内存中,如果false则尝试从存储卡读取,如果依然不存在最后才从网络地址

安装CentOS、Linux系统时,GPT分区不能引导的解决方法

安装系统:CentOS 5.9_64bit时,分区后, 提示如下错误. 解决方法: 1.按ctrl+alt+F2 进入命令行 2.先查看分区 sh #fdisk -l    以下假设分区是/dev/sda 3.修改标签     (parted) select /dev/sda     (parted) mklabel                 //提示默认是gpt,输入msdos,回车     (parted) print                       //查看到msdos,

MVC.Net:对MVC5部署时出现403.14错误的解决方法

当我们部署MVC5到IIS 7的时候,有时会出现403.14的错误,如下图: 对于这个错误的解决方法就是在应用程序的web.config的system.webServer节点中加入这一句: <modules runAllManagedModulesForAllRequests="true"></modules> 如下例: <system.webServer> <!-- 此行必须有,否则IIS7无法启动 --> <modules ru

Silverlight运行时提示未安装silverlight runtime 解决方法

出现该问题是由于电脑上安装的silverlight不是silverlight developer. 一般来说安装完VS之后是不会出现该问题. 但是一旦更改了silverlight中web service中TestPage的minRuntimeVersion版本,因为默认生成的版本号是silverlight sdk(根据创建项目时选择的是silverlight 4还是5来判断是哪个版本的SDK)的版本号.一旦修改的版本号比电脑安装的sdk版本高,则会在第一次运行时提示需要安装更新版本的silver

关于在设置启动文件夹或者设置用户选项时不能得到当前用户的解决方法

原文:关于在设置启动文件夹或者设置用户选项时不能得到当前用户的解决方法 上一篇:如何设置Installshield中 feature的选中状态 在用到FOLDER_STARTUP或者类似的变量前加一句ALLUSERS=0;然后FOLDER_STARTUP就是指向当前用户了.ALLUSERS是环境变量,不需要你定义.IS版本低时可能不行. 下一篇: MyEclipse中消除frame引起的“the file XXX can not be found.Please check the locatio