2 // System.Security.Policy.ApplicationSecurityInfo class
5 // Sebastien Pouliot <sebastien@ximian.com>
7 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 using System.Collections;
32 using System.Globalization;
33 using System.Security.Permissions;
35 namespace System.Security.Policy {
37 public sealed class ApplicationSecurityInfo : ISecurityEncodable, ISecurityPolicyEncodable {
39 private ActivationContext _context;
40 private Evidence _evidence;
41 private ApplicationId _appid;
42 private PermissionSet _defaultSet;
43 private ApplicationId _deployid;
45 public ApplicationSecurityInfo (ActivationContext activationContext)
47 if (activationContext == null)
48 throw new ArgumentNullException ("activationContext");
49 _context = activationContext;
52 public Evidence ApplicationEvidence {
53 get { return _evidence; }
56 throw new ArgumentNullException ("ApplicationEvidence");
61 public ApplicationId ApplicationId {
62 get { return _appid; }
65 throw new ArgumentNullException ("ApplicationId");
70 public PermissionSet DefaultRequestSet {
72 if (_defaultSet == null)
73 return new PermissionSet (PermissionState.None);
74 return _defaultSet; // FIXME: copy or reference ?
78 throw new ArgumentNullException ("DefaultRequestSet");
83 public ApplicationId DeploymentId {
84 get { return _deployid; }
87 throw new ArgumentNullException ("DeploymentId");
95 public override bool Equals (object obj)
99 ApplicationSecurityInfo asi = (obj as ApplicationSecurityInfo);
106 public void FromXml (SecurityElement element)
108 FromXml (element, null);
112 public void FromXml (SecurityElement element, PolicyLevel level)
114 throw new NotImplementedException ();
118 public override int GetHashCode ()
120 return base.GetHashCode ();
124 public bool IsInApplication (Evidence evidence)
126 if (evidence == null)
129 IEnumerator e = evidence.GetHostEnumerator ();
130 while (e.MoveNext ()) {
133 e = evidence.GetAssemblyEnumerator ();
134 while (e.MoveNext ()) {
137 // we found them all!
141 public SecurityElement ToXml ()
147 public SecurityElement ToXml (PolicyLevel level)
149 throw new NotImplementedException ();