// 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 ()
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