3 // Copyright (c) Microsoft Corporation. All rights reserved.
6 // <OWNER>Microsoft</OWNER>
9 namespace System.Security
11 //PermissionSetEnumerator.cs
14 using System.Collections;
15 using TokenBasedSetEnumerator = System.Security.Util.TokenBasedSetEnumerator;
16 using TokenBasedSet = System.Security.Util.TokenBasedSet;
18 internal class PermissionSetEnumerator : IEnumerator
20 PermissionSetEnumeratorInternal enm;
30 public bool MoveNext()
32 return enm.MoveNext();
40 internal PermissionSetEnumerator(PermissionSet permSet)
42 enm = new PermissionSetEnumeratorInternal(permSet);
46 internal struct PermissionSetEnumeratorInternal
48 private PermissionSet m_permSet;
49 private TokenBasedSetEnumerator enm;
59 internal PermissionSetEnumeratorInternal(PermissionSet permSet)
62 enm = new TokenBasedSetEnumerator(permSet.m_permSet);
65 public int GetCurrentIndex()
75 public bool MoveNext()
77 while (enm.MoveNext())
79 Object obj = enm.Current;
80 IPermission perm = obj as IPermission;
87 #if FEATURE_CAS_POLICY
88 SecurityElement elem = obj as SecurityElement;
92 perm = m_permSet.CreatePermission(elem, enm.Index);
99 #endif // FEATURE_CAS_POLICY