CodeQL library for C#
codeql/csharp-all 3.1.1 (changelog, source)
Search

Class ActionMethod

A method representing an action for a web endpoint.

Import path

import semmle.code.csharp.security.auth.ActionMethods

Direct supertypes

Indirect supertypes

Known direct subtypes

    Predicates

    getADescription

    Gets a string that can indicate what this method does to determine if it should have an auth check; such as its method name, class name, or file path.

    getARoute

    Gets a possible url route that could refer to this action, which would be covered by <location> configurations specifying a prefix of it.

    getAnAuthorizingCallable

    Gets a callable for which if it contains an auth check, this method should be considered authenticated.

    isAdmin

    Holds if this method may be intended to be restricted to admin users

    isEdit

    Holds if this method may represent a stateful action such as editing or deleting

    Inherited predicates

    calls

    Holds if callee is potentially called from this callable. That is, callee is a potential run-time target of a call in the body of this callable.

    from Callable
    canReturn

    Holds if this callable can return expression e.

    from Callable
    canYieldReturn

    Holds if this callable can yield return the expression e.

    from Callable
    fromLibrary

    Holds if this element is from an assembly.

    from Element
    fromSource

    Holds if this element is from source code.

    from Method
    getACall

    Gets a Call that has this callable as a target.

    from Callable
    getAChild

    Gets a child of this element, if any.

    from Element
    getAChildExpr

    Gets a child expression of this element, if any.

    from ExprOrStmtParent
    getAChildStmt

    Gets a child statement of this element, if any.

    from ExprOrStmtParent
    getALocation

    Gets a location of this element, including sources and assemblies.

    from Method
    getAModifier

    Gets a modifier of this declaration.

    from Modifiable
    getAParameter

    Gets a parameter, if any.

    from Parameterizable
    getAPrimaryQlClass

    Gets the name of a primary CodeQL class to which this element belongs.

    from Method
    getARawParameter

    Gets a raw parameter (including the qualifier), if any.

    from Parameterizable
    getAStatementBody

    DEPRECATED: Use getStatementBody instead.

    from Callable
    getAnAccess

    Gets an access to this member.

    from Member
    getAnAttribute

    Gets an attribute attached to this element, if any.

    from Attributable
    getAnImplementor

    Gets a member that immediately implements this interface member, if any.

    from Method
    getAnImplementor

    Gets a member that immediately implements this interface member, if any.

    from Overridable
    getAnOverrider

    Gets a member that immediately overrides this member, if any.

    from Method
    getAnUltimateImplementee

    Gets an interface member that is (transitively) implemented by this member, if any. That is, either this member immediately implements the interface member, or this member overrides (transitively) another member that immediately implements the interface member.

    from Method
    getAnUltimateImplementor

    Gets a member that (transitively) implements this interface member, if any. That is, either this interface member is immediately implemented by the result, or the result overrides (transitively) another member that immediately implements this interface member.

    from Method
    getAnnotatedReturnType

    Gets the annotated return type of this callable.

    from Callable
    getBody

    Gets the body of this callable, if any.

    from Callable
    getChild

    Gets the ith child of this element (zero-based).

    from ExprOrStmtParent
    getChildExpr

    Gets the ith child expression of this element (zero-based).

    from ExprOrStmtParent
    getChildStmt

    Gets the ith child statement of this element (zero-based).

    from ExprOrStmtParent
    getCyclomaticComplexity

    Gets the number of branching statements (if, while, do, for, foreach switch, case, catch) plus the number of branching expressions (?, &&, ||, ??) plus one. Callables with a high cyclomatic complexity (> 10) are hard to test and maintain, given their large number of possible execution paths. They should be refactored.

    from Callable
    getDeclaringType

    Gets the type containing this declaration, if any.

    from Method
    getEnclosingCallable

    Gets the enclosing callable of this callable, if any.

    from Callable
    getEntryPoint

    Gets the entry point in the control graph for this callable.

    from Callable
    getExitPoint

    Gets the exit point in the control graph for this callable.

    from Callable
    getExplicitlyImplementedInterface

    Gets any interface this member explicitly implements; this only applies to members that can be declared on an interface, i.e. methods, properties, indexers and events.

    from Overridable
    getExpressionBody

    Gets the expression body of this callable (if any), specified by =>.

    from Callable
    getFile

    Gets the file containing this element.

    from Element
    getFullyQualifiedName

    DEPRECATED: Use hasFullyQualifiedName instead.

    from NamedElement
    getFullyQualifiedNameDebug

    INTERNAL: Do not use.

    from NamedElement
    getFullyQualifiedNameWithTypes

    Gets the fully qualified name of this declaration, including types, for example the fully qualified name with types of M on line 3 is N.C.M(int, string) in

    from Declaration
    getImplementee

    Gets the interface member that is immediately implemented by this member, if any.

    from Method
    getImplementee

    Gets the interface member that is immediately implemented by this member, if any.

    from Overridable
    getIndex

    Gets the index of this element among its parent’s other children (zero-based).

    from Element
    getLocation

    Gets the location of this element. Where an element has locations in source and assemblies, choose the source location. If there are multiple assembly locations, choose only one.

    from Element
    getName

    Gets the name of this method.

    from Method
    getNumberOfChildren

    Gets the number of children of this element.

    from Element
    getNumberOfLines

    Gets the total number of lines in this callable.

    from Callable
    getNumberOfLinesOfCode

    Gets the number of lines containing code in this callable.

    from Callable
    getNumberOfLinesOfComments

    Gets the number of lines containing comments in this callable.

    from Callable
    getNumberOfParameters

    Gets the number of parameters of this callable.

    from Parameterizable
    getOverridee

    Gets the member that is immediately overridden by this member, if any.

    from Method
    getParameter

    Gets the ith parameter, excluding the this parameter.

    from Parameterizable
    getParamsType

    Gets the type of the params parameter of this method, if any.

    from Method
    getParent

    Gets the parent of this element, if any.

    from Element
    getPrimaryQlClasses

    Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs.

    from Element
    getRawParameter

    Gets raw parameter i, including the this parameter at index 0.

    from Method
    getReturnType

    Gets the return type of this callable.

    from Method
    getStatementBody

    Gets the statement body of this callable, if any.

    from Callable
    getUnboundDeclaration

    Gets the unbound version of this declaration, that is, the declaration where all type arguments have been removed. For example, in

    from Method
    getUndecoratedName

    Gets the name of this declaration, without additional decoration such as <...>.

    from Method
    hasBody

    Holds if this callable has a body or an implementation.

    from Callable
    hasExpressionBody

    Holds if this callable has an expression body.

    from Callable
    hasFullyQualifiedName

    Holds if this element has the fully qualified name qualifier.name.

    from Declaration
    hasFullyQualifiedName

    Holds if this member has name name and is defined in type type with namespace namespace.

    from Member
    hasLocationInfo

    Holds if this element is at the specified location. The location spans column startcolumn of line startline to column endcolumn of line endline in file filepath. For more information, see Locations.

    from Attributable
    hasModifier

    Holds if this declaration has name as a modifier.

    from Modifiable
    hasName

    Holds if this element has name ‘name’.

    from NamedElement
    hasNoParameters

    Holds if this declaration has no parameters.

    from Parameterizable
    hasNonEmptyBody

    Holds if this callable has a non-empty body. That is, either it has an expression body, or it has a non-empty statement body.

    from Callable
    hasParams

    Holds if this method has a params parameter.

    from Method
    hasStatementBody

    Holds if this callable has a statement body.

    from Callable
    hasUndecoratedName

    Holds if this element has undecorated name ‘name’.

    from Declaration
    implements

    Holds if this member implements (transitively) an interface member.

    from Overridable
    implementsExplicitInterface

    Holds if this member implements an interface member explicitly.

    from Overridable
    isAbstract

    Holds if this declaration is abstract.

    from Modifiable
    isAsync

    Holds if this declaration is async.

    from Modifiable
    isCompilerGenerated

    Holds if this declaration has been generated by the compiler, for example implicit constructors or accessors.

    from Declaration
    isConst

    Holds if this declaration is const.

    from Modifiable
    isEffectivelyInternal

    Holds if this declaration is effectively internal. A declaration is considered effectively internal if it can only be referenced from the declaring assembly.

    from Modifiable
    isEffectivelyPrivate

    Holds if this declaration is effectively private. A declaration is considered effectively private if it can only be referenced from - the declaring and its nested types, similarly to private declarations, and - the enclosing types.

    from Modifiable
    isEffectivelyPublic

    Holds if this declaration is effectively public, meaning that it can be referenced outside the declaring assembly.

    from Modifiable
    isExtensionMethod

    Holds if this method is an extension method.

    from Method
    isExtern

    Holds if this declaration is extern.

    from Modifiable
    isFile

    Holds if this declaration is file local.

    from Modifiable
    isImplemented

    Holds if this interface member is implemented by some other member.

    from Overridable
    isInternal

    Holds if this declaration is internal.

    from Modifiable
    isNew

    Holds if this declaration has the modifier new.

    from Modifiable
    isOverridableOrImplementable

    Holds if this member can be overridden or implemented.

    from Virtualizable
    isOverridden

    Holds if this member is overridden by some other member.

    from Overridable
    isOverride

    Holds if this member has the modifier override.

    from Virtualizable
    isPartial

    Holds if this declaration is partial.

    from Modifiable
    isPrivate

    Holds if this declaration is private.

    from Virtualizable
    isProtected

    Holds if this declaration is protected.

    from Modifiable
    isPublic

    Holds if this declaration is public.

    from Virtualizable
    isRequired

    Holds if this declaration has the modifier required.

    from Modifiable
    isSealed

    Holds if this declaration is sealed.

    from Modifiable
    isSourceDeclaration

    Holds if this declaration is unconstructed and in source code.

    from Declaration
    isStatic

    Holds if this declaration is static.

    from Modifiable
    isUnboundDeclaration

    Holds if this declaration is unbound.

    from Declaration
    isUnsafe

    Holds if this declaration is unsafe.

    from Modifiable
    isVirtual

    Holds if this member is virtual.

    from Virtualizable
    overrides

    Holds if this member overrides another member.

    from Overridable
    overridesOrImplements

    Holds if this member overrides or implements (transitively) that member.

    from Overridable
    overridesOrImplementsOrEquals

    Holds if this member overrides or implements (reflexively, transitively) that member.

    from Overridable
    parameterTypesToString

    Gets the types of the parameters of this declaration as a comma-separated string.

    from Parameterizable
    toStringfrom Method
    toStringWithTypes

    Gets the full textual representation of this element, including type information.

    from Callable