Export (0) Print
Expand All
Expand Minimize

CA2126: Type link demands require inheritance demands

TypeName

TypeLinkDemandsRequireInheritanceDemands

CheckId

CA2126

Category

Microsoft.Security

Breaking Change

Breaking

A public unsealed type is protected with a link demand, has an overridable method, and neither the type nor the method is protected with an inheritance demand.

A link demand on a method or its declaring type requires the immediate caller of the method to have the specified permission. An inheritance demand on a method requires an overriding method to have the specified permission. An inheritance demand on a type requires a deriving class to have the specified permission.

To fix a violation of this rule, secure the type or the method with an inheritance demand for the same permission as the link demand.

Do not suppress a warning from this rule.

The following example shows a type that violates the rule.


Imports System
Imports System.Security.Permissions

Namespace SecurityLibrary

    <EnvironmentPermission(SecurityAction.LinkDemand, Read:="PATH")> _
    Public Class TypesWithLinkDemands

        Protected Overridable Sub UnsecuredMethod()
        End Sub

        <EnvironmentPermission(SecurityAction.InheritanceDemand, Read:="PATH")> _
        Protected Overridable Sub SecuredMethod()
        End Sub

    End Class

End Namespace


Community Additions

ADD
Show:
© 2014 Microsoft