2 * security-manager.c: Security Manager (Unmanaged side)
5 * Sebastien Pouliot <sebastien@ximian.com>
7 * Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
10 #include "security-manager.h"
15 static MonoSecurityManager secman
;
16 static MonoBoolean mono_security_manager_activated
= FALSE
;
17 static MonoBoolean mono_security_manager_enabled
= TRUE
;
18 static MonoBoolean mono_security_manager_execution
= TRUE
;
24 mono_security_manager_get_methods (void)
26 /* Already initialized ? */
27 if (secman
.securitymanager
)
31 secman
.securitymanager
= mono_class_from_name (mono_defaults
.corlib
,
32 "System.Security", "SecurityManager");
33 g_assert (secman
.securitymanager
);
34 if (!secman
.securitymanager
->inited
)
35 mono_class_init (secman
.securitymanager
);
37 secman
.demand
= mono_class_get_method_from_name (secman
.securitymanager
,
39 secman
.inheritancedemand
= mono_class_get_method_from_name (secman
.securitymanager
,
40 "InheritanceDemand", 2);
41 secman
.linkdemand
= mono_class_get_method_from_name (secman
.securitymanager
,
48 * Note: The security manager is activate once when executing the Mono. This
49 * is not meant to be a turn on/off runtime switch.
52 mono_activate_security_manager (void)
54 mono_security_manager_activated
= TRUE
;
58 mono_is_security_manager_active (void)
60 return mono_security_manager_activated
;
64 ves_icall_System_Security_SecurityManager_get_SecurityEnabled (void)
66 if (!mono_security_manager_activated
)
68 return mono_security_manager_enabled
;
72 ves_icall_System_Security_SecurityManager_set_SecurityEnabled (MonoBoolean value
)
74 /* value can be changed only if the security manager is activated */
75 if (mono_security_manager_activated
) {
76 mono_security_manager_enabled
= value
;
81 ves_icall_System_Security_SecurityManager_get_CheckExecutionRights (void)
83 if (!mono_security_manager_activated
)
85 return mono_security_manager_execution
;
89 ves_icall_System_Security_SecurityManager_set_CheckExecutionRights (MonoBoolean value
)
91 /* value can be changed only id the security manager is activated */
92 if (mono_security_manager_activated
) {
93 mono_security_manager_execution
= value
;