在研究.NET反射API时,我理解使用反射更改私有字段/属性值是可能的,在这种情况下,安全性由反射权限控制。我的问题是如何控制代码是否可以访问私有字段?来自MSDN:
要允许代码调用任何非公共成员:您的代码必须被授予带有ReflectionPermission标志的ReflectionPermissionFlag.MemberAccess。
如何使类私有字段对使用反射的代码不可见?这样做的最佳做法是什么?
发布于 2013-10-04 07:11:00
ReflectionPermission 是使用反射向代码授予的权限,而不是授予属于reflected.的代码的权限。
作为一名开发人员,您无法阻止代码被反射。你可以使用混淆,但这只会使反射更难,而不是不可能。
作为一名系统管理员,您可能可以通过对计算机强制执行适当的安全策略来防止需要ReflectionPermission的代码运行,但是,如果我正确理解了您的问题,这不是您要寻找的。
发布于 2013-10-04 07:05:10
请参阅注释中的链接,但简短的回答是:最终您不能限制某人在代码上使用反射。
注释中的链接很好地解释了它:How can I restrict reflection for certain assemblies?
https://stackoverflow.com/questions/19175130
复制相似问题