CA2135和CA2122的战斗



我有一个命中Active Directory的类。它查找域上的用户并检查他们的分组。下面是我的函数定义:

[DirectoryServicesPermission(SecurityAction.LinkDemand, Unrestricted = true)]
public bool IsUserMemberOfGroup(String userName, String groupName)

我得到错误CA2135。因此,我将其更改为使用MSDN页面中所述的安全关键:

[SecurityCritical]
public bool IsUserMemberOfGroup(String userName, String groupName)

现在,我得到错误CA2122,它要求我把它改回使用LinkDemand。除了抑制这个错误,我还能做些什么吗?

我强烈怀疑CA2122规则还没有完全更新到与2级透明度一起工作。虽然它识别SecurityCritical程序集级属性,但它忽略APTCA程序集中的SecurityCritical类型或成员级属性。添加SecurityCritical属性并抑制CA2122违规可能是安全的,但是您可能还需要验证缺乏无限制DirectoryServicesPermission的代码实际上不能调用到您的方法中。

相关内容

  • 没有找到相关文章

最新更新