<?xml version="1.0" encoding="us-ascii"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>mono-api-security.html</title> <style type="text/css"> .mapi-docs { line-height: 1.5; padding-left: 2em; padding-right: 2em; } .mapi-docs p { max-width: 60em; } .mapi-docs .mapi-body { max-width: 60em; } .mapi-docs code { border: 1px solid rgba(214,214,214,1); background-color: rgba(249,249,249,1); padding: 0.1em 0.5em; } .mapi-description code { font-family: "Consolas", "Courier", monospace; border: 1px solid rgba(214,214,214,1); background-color: rgba(249,249,249,1); padding: 0.1em 0.2em; } .mapi-header { padding: 0 0 5pt 5pt; margin: 10pt; white-space: pre; font-family: monospace; border: 1px solid rgba(233,233,233,1); background-color: rgba(249,249,249,1); } .mapi-code { padding: 5pt 5pt; margin: 10pt; white-space: pre; font-family: monospace; border: 1px solid rgba(233,233,233,1); background-color: rgba(249,249,249,1); } .mapi-code:first-line { line-height: 0px; } .mapi-codeblock { display: block; padding: 5pt 5pt; margin: 10pt; white-space: pre; font-family: monospace; border: 1px solid rgba(233,233,233,1); background-color: rgba(249,249,249,1); } .mapi-entry code { border: none; background-color: transparent; } .mapi-parameters { border-collapse: collapse; border-spacing: 0; empty-cells: hide; border: 0; margin: 5px 0 26px; } .mapi-parameters td { border: 1px solid rgba(214,214,214,1); border-left-style: none; padding: 5px 25px 5px 10px; } .mapi-parameters tr>td:last-child { border-right: 0; } .mapi-parameters td:first-of-type { text-align: right; padding: 7px; vertical-align: top; word-break: normal; width: 40px; } .mapi-parameters tr:last-child>td { border-bottom: 0; } .mapi-parameters tr:first-child>td { border-top: 0; } .mapi-parameters tr td:first-of-type { text-align: right; padding: 7px; vertical-align: top; word-break: normal; width: 40px; } .mapi { left: -25px; margin: 0; padding: 13px 25px 0; position: relative; width: 100%; } .mapi-description { background: rgba(249,249,249,1); border-bottom: 1px solid rgba(233,233,233,1); left: -25px; margin: 0; padding: 13px 25px 0; position: relative; width: 100%; } .mapi-entry { background: transparent; } .mapi-docs { } .mapi-prototype { border-left: 5px solid rgba(205,233,244,1); padding: .5em; margin-top: 5pt; margin-bottom: 5pt; font-family: "Consolas", "Courier", monospace; display: block; overflow: auto; background-color: #f9f9f9; } .mapi-declaration { margin-top: 21px; } .mapi-section { font-size: smaller; font-weight: bold; margin-top: 21px; line-height: 1.5; } .mapi-strike { text-decoration: line-through; } .mapi-deprecated { color: red; } .mapi-ptr-container { background: white; border-bottom: 1px solid rgba(233,233,233,1); left: -25px; padding-left: 25px; padding-right: 25px; padding-bottom: 13px; position: relative; width: 100%; } .mapi-ptr { background: rgba(249,249,249,1); border-left: 1px solid rgba(233,233,233,1); border-top: 1px solid rgba(233,233,233,1); height: 12px; left: 37px; top: -7px; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -o-transform: rotate(45deg); transform: rotate(45deg); position: absolute; width: 12px; } .mapi-height-container { left: -25px; padding: 0 25px; position: relative; width: 100%; } </style> </head> <body> <div class="mapi-docs"> <h3>Security Manager</h3> <h3>Declarative Security</h3> <a name="api:mono_declsec_flags_from_assembly"></a> <div class="mapi"> <div class="mapi-entry "><code>mono_declsec_flags_from_assembly</code></div> <div class="mapi-height-container"> <div class="mapi-ptr-container"></div> <div class="mapi-description"> <div class="mapi-ptr"></div> <div class="mapi-declaration mapi-section">Syntax</div> <div class="mapi-prototype">guint32 mono_declsec_flags_from_assembly (MonoAssembly *assembly) </div> <p /> <div class="mapi-section">Parameters</div> <table class="mapi-parameters"><tbody><tr><td><i>assembly</i></td><td> The assembly for which we want the declarative security flags.</td></tr></tbody></table> <div class="mapi-section">Return value</div> <div> the declarative security flags for the assembly. </div> <div class="mapi-section">Description</div> <div> Get the security actions (in the form of flags) associated with the specified assembly.</div> </div><!--mapi-description --> </div><!--height container --> </div> <!-- class=mapi --> <a name="api:mono_declsec_flags_from_class"></a> <div class="mapi"> <div class="mapi-entry "><code>mono_declsec_flags_from_class</code></div> <div class="mapi-height-container"> <div class="mapi-ptr-container"></div> <div class="mapi-description"> <div class="mapi-ptr"></div> <div class="mapi-declaration mapi-section">Syntax</div> <div class="mapi-prototype">guint32 mono_declsec_flags_from_class (MonoClass *klass) </div> <p /> <div class="mapi-section">Parameters</div> <table class="mapi-parameters"><tbody><tr><td><i>klass</i></td><td> The class for which we want the declarative security flags.</td></tr></tbody></table> <div class="mapi-section">Return value</div> <div> the declarative security flags for the class. </div> <div class="mapi-section">Description</div> <div> Get the security actions (in the form of flags) associated with the specified class. We cache the flags inside the <code>MonoClass</code> structure as this will get called very often (at least for each method).</div> </div><!--mapi-description --> </div><!--height container --> </div> <!-- class=mapi --> <a name="api:mono_declsec_flags_from_method"></a> <div class="mapi"> <div class="mapi-entry "><code>mono_declsec_flags_from_method</code></div> <div class="mapi-height-container"> <div class="mapi-ptr-container"></div> <div class="mapi-description"> <div class="mapi-ptr"></div> <div class="mapi-declaration mapi-section">Syntax</div> <div class="mapi-prototype">guint32 mono_declsec_flags_from_method (MonoMethod *method) </div> <p /> <div class="mapi-section">Parameters</div> <table class="mapi-parameters"><tbody><tr><td><i>method</i></td><td> The method for which we want the declarative security flags.</td></tr></tbody></table> <div class="mapi-section">Return value</div> <div> the declarative security flags for the method (only). </div> <div class="mapi-section">Description</div> <div> Get the security actions (in the form of flags) associated with the specified method. To keep <code>MonoMethod</code> size down we do not cache the declarative security flags (except for the stack modifiers which are kept in the MonoJitInfo structure)</div> </div><!--mapi-description --> </div><!--height container --> </div> <!-- class=mapi --> <a name="api:mono_declsec_get_assembly_action"></a> <div class="mapi"> <div class="mapi-entry "><code>mono_declsec_get_assembly_action</code></div> <div class="mapi-height-container"> <div class="mapi-ptr-container"></div> <div class="mapi-description"> <div class="mapi-ptr"></div> <div class="mapi-declaration mapi-section">Syntax</div> <div class="mapi-prototype">MonoBoolean mono_declsec_get_assembly_action (MonoAssembly *assembly, guint32 action, MonoDeclSecurityEntry *entry) </div> <p /> </div><!--mapi-description --> </div><!--height container --> </div> <!-- class=mapi --> <a name="api:mono_declsec_get_class_action"></a> <div class="mapi"> <div class="mapi-entry "><code>mono_declsec_get_class_action</code></div> <div class="mapi-height-container"> <div class="mapi-ptr-container"></div> <div class="mapi-description"> <div class="mapi-ptr"></div> <div class="mapi-declaration mapi-section">Syntax</div> <div class="mapi-prototype">MonoBoolean mono_declsec_get_class_action (MonoClass *klass, guint32 action, MonoDeclSecurityEntry *entry) </div> <p /> </div><!--mapi-description --> </div><!--height container --> </div> <!-- class=mapi --> <a name="api:mono_declsec_get_demands"></a> <div class="mapi"> <div class="mapi-entry "><code>mono_declsec_get_demands</code></div> <div class="mapi-height-container"> <div class="mapi-ptr-container"></div> <div class="mapi-description"> <div class="mapi-ptr"></div> <div class="mapi-declaration mapi-section">Syntax</div> <div class="mapi-prototype">MonoBoolean mono_declsec_get_demands (MonoMethod *method, MonoDeclSecurityActions* demands) </div> <p /> <div class="mapi-section">Description</div> <div> Collect all actions (that requires to generate code in mini) assigned for the specified method. Don't use the content of actions if the function return <code>FALSE</code>.</div> </div><!--mapi-description --> </div><!--height container --> </div> <!-- class=mapi --> <a name="api:mono_declsec_get_inheritdemands_class"></a> <div class="mapi"> <div class="mapi-entry "><code>mono_declsec_get_inheritdemands_class</code></div> <div class="mapi-height-container"> <div class="mapi-ptr-container"></div> <div class="mapi-description"> <div class="mapi-ptr"></div> <div class="mapi-declaration mapi-section">Syntax</div> <div class="mapi-prototype">MonoBoolean mono_declsec_get_inheritdemands_class (MonoClass *klass, MonoDeclSecurityActions* demands) </div> <p /> <div class="mapi-section">Parameters</div> <table class="mapi-parameters"><tbody><tr><td><i>klass</i></td><td> The inherited class - this is the class that provides the security check (attributes)</td></tr><tr><td><i>demands</i></td><td></td></tr></tbody></table> <div class="mapi-section">Return value</div> <div> <code>TRUE</code> if inheritance demands (any kind) are present, <code>FALSE</code> otherwise. </div> <div class="mapi-section">Description</div> <div> Collect all Inherit actions - <code>InheritanceDemand</code>, <code>NonCasInheritanceDemand</code> and <code>InheritanceDemandChoice</code> (2.0). Don't use the content of actions if the function return <code>FALSE</code>.</div> </div><!--mapi-description --> </div><!--height container --> </div> <!-- class=mapi --> <a name="api:mono_declsec_get_inheritdemands_method"></a> <div class="mapi"> <div class="mapi-entry "><code>mono_declsec_get_inheritdemands_method</code></div> <div class="mapi-height-container"> <div class="mapi-ptr-container"></div> <div class="mapi-description"> <div class="mapi-ptr"></div> <div class="mapi-declaration mapi-section">Syntax</div> <div class="mapi-prototype">MonoBoolean mono_declsec_get_inheritdemands_method (MonoMethod *method, MonoDeclSecurityActions* demands) </div> <p /> <div class="mapi-section">Parameters</div> <table class="mapi-parameters"><tbody><tr><td><i>actions</i></td><td> <code>InheritanceDemand</code>, <code>NonCasInheritanceDemand</code> and <code>InheritanceDemandChoice</code> (2.0).</td></tr></tbody></table> <div class="mapi-section">Description</div> <div> Don't use the content of actions if the function return <code>FALSE</code>.</div> </div><!--mapi-description --> </div><!--height container --> </div> <!-- class=mapi --> <a name="api:mono_declsec_get_linkdemands"></a> <div class="mapi"> <div class="mapi-entry "><code>mono_declsec_get_linkdemands</code></div> <div class="mapi-height-container"> <div class="mapi-ptr-container"></div> <div class="mapi-description"> <div class="mapi-ptr"></div> <div class="mapi-declaration mapi-section">Syntax</div> <div class="mapi-prototype">MonoBoolean mono_declsec_get_linkdemands (MonoMethod *method, MonoDeclSecurityActions* klass, MonoDeclSecurityActions *cmethod) </div> <p /> <div class="mapi-section">Parameters</div> <table class="mapi-parameters"><tbody><tr><td><i>actions</i></td><td> <code>LinkDemand</code>, <code>NonCasLinkDemand</code> and <code>LinkDemandChoice</code> (2.0).</td></tr></tbody></table> <div class="mapi-section">Description</div> <div> Don't use the content of actions if the function return <code>FALSE</code>.</div> </div><!--mapi-description --> </div><!--height container -->