CS.SV.LINK_DEMAND.INHERITANCE
Type link demands require inheritance demands.
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.
Mitigation and prevention
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.
Vulnerable code example
Copy
using System;
using System.Security.Permissions;
namespace SecurityLibrary
{
[EnvironmentPermission(SecurityAction.LinkDemand, Read = "PATH")]
public class TypesWithLinkDemands
{
public virtual void UnsecuredMethod() {}
[EnvironmentPermission(SecurityAction.InheritanceDemand, Read = "PATH")]
public virtual void SecuredMethod() { }
}
}
The following example shows a type that violates the rule.