More removal of old defines
[mono.git] / mcs / class / corlib / System.Security / HostSecurityManager.cs
index 95ba870214ca8d002da587ebe61d354c328008e7..8b6c9c8c50d372eb39364131457906fd13cd0145 100644 (file)
@@ -4,7 +4,7 @@
 // Author:
 //     Sebastien Pouliot  <sebastien@ximian.com>
 //
-// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_2_0
-
-using System;
 using System.Reflection;
+using System.Runtime.Hosting;
+using System.Runtime.InteropServices;
 using System.Security.Policy;
 
 namespace System.Security {
 
        [Serializable]
+       [ComVisible (true)]
        public class HostSecurityManager {
 
                public HostSecurityManager ()
@@ -46,28 +46,58 @@ namespace System.Security {
                        get { return null; }
                }
 
-               public virtual HostSecurityManagerFlags Flags {
-                       get { return HostSecurityManagerFlags.AllFlags; }
+               public virtual HostSecurityManagerOptions Flags {
+                       get { return HostSecurityManagerOptions.AllFlags; }
                }
 
-               public virtual PermissionSet RefusedSet {
-                       // always return null - may be overriden
-                       get { return null; }
+               public virtual ApplicationTrust DetermineApplicationTrust (Evidence applicationEvidence, Evidence activatorEvidence, TrustManagerContext context)
+               {
+                       if (applicationEvidence == null)
+                               throw new ArgumentNullException ("applicationEvidence");
+
+                       ActivationArguments aa = null;
+                       foreach (object o in applicationEvidence) {
+                               aa = (o as ActivationArguments);
+                               if (aa != null)
+                                       break;
+                       }
+
+                       if (aa == null) {
+                               string msg = Locale.GetText ("No {0} found in {1}.");
+                               throw new ArgumentException (string.Format (msg, "ActivationArguments", "Evidence"), "applicationEvidence");
+                       }
+                       if (aa.ActivationContext == null) {
+                               string msg = Locale.GetText ("No {0} found in {1}.");
+                               throw new ArgumentException (string.Format (msg, "ActivationContext", "ActivationArguments"), "applicationEvidence");
+                       }
+
+                       // FIXME: this part is still untested (requires manifest support)
+                       if (ApplicationSecurityManager.DetermineApplicationTrust (aa.ActivationContext, context)) {
+                               if (aa.ApplicationIdentity == null)
+                                       return new ApplicationTrust ();
+                               else
+                                       return new ApplicationTrust (aa.ApplicationIdentity);
+                       }
+                       return null;
                }
 
-               public virtual bool DetermineApplicationTrust (ActivationContext activationContext, TrustManagerContext context)
+               public virtual Evidence ProvideAppDomainEvidence (Evidence inputEvidence)
                {
-                       if (activationContext == null)
-                               throw new ArgumentNullException ("activationContext");
-                       return true;
+                       // no changes - may be overriden
+                       return inputEvidence;
                }
 
-               public virtual Evidence ProvideAssemblyEvidence (Assembly loadedAssembly, Evidence evidence)
+               public virtual Evidence ProvideAssemblyEvidence (Assembly loadedAssembly, Evidence inputEvidence)
                {
                        // no changes - may be overriden
-                       return evidence;
+                       return inputEvidence;
+               }
+
+               public virtual PermissionSet ResolvePolicy (Evidence evidence)
+               {
+                       if (evidence == null)
+                               throw new NullReferenceException ("evidence");
+                       return SecurityManager.ResolvePolicy (evidence);
                }
        }
 }
-
-#endif