//
-// System.Security.Permissions.KeyContainerPermission class
+// System.Security.Permissions.KeyContainerPermission.cs
//
// Author
// Sebastien Pouliot <sebastien@ximian.com>
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-#if NET_2_0
-
using System.Globalization;
using System.Runtime.InteropServices;
{
SetFlags (flags);
if (accessList != null) {
+ _accessEntries = new KeyContainerPermissionAccessEntryCollection ();
foreach (KeyContainerPermissionAccessEntry kcpae in accessList) {
_accessEntries.Add (kcpae);
}
return new KeyContainerPermission (_flags, list);
}
- public override void FromXml (SecurityElement esd)
+ [MonoTODO ("(2.0) missing support for AccessEntries")]
+ public override void FromXml (SecurityElement securityElement)
{
// General validation in CodeAccessPermission
- CheckSecurityElement (esd, "esd", version, version);
+ CheckSecurityElement (securityElement, "securityElement", version, version);
// Note: we do not (yet) care about the return value
// as we only accept version 1 (min/max values)
- if (IsUnrestricted (esd)) {
+ if (IsUnrestricted (securityElement)) {
_flags = KeyContainerPermissionFlags.AllFlags;
}
else {
// ???
_flags = (KeyContainerPermissionFlags) Enum.Parse (
- typeof (KeyContainerPermissionFlags), esd.Attribute ("Flags"));
+ typeof (KeyContainerPermissionFlags), securityElement.Attribute ("Flags"));
}
}
- [MonoTODO]
+ [MonoTODO ("(2.0)")]
public override IPermission Intersect (IPermission target)
{
return null;
}
- [MonoTODO]
+ [MonoTODO ("(2.0)")]
public override bool IsSubsetOf (IPermission target)
{
return false;
return (_flags == KeyContainerPermissionFlags.AllFlags);
}
+ [MonoTODO ("(2.0) missing support for AccessEntries")]
public override SecurityElement ToXml ()
{
SecurityElement e = Element (version);
if (IsUnrestricted ()) {
e.AddAttribute ("Unrestricted", "true");
- }
- else {
- // TODO
+ } else {
+ // ...
}
return e;
}
private void SetFlags (KeyContainerPermissionFlags flags)
{
- if ((flags & KeyContainerPermissionFlags.AllFlags) != 0) {
+ if ((flags & KeyContainerPermissionFlags.AllFlags) == 0) {
string msg = String.Format (Locale.GetText ("Invalid enum {0}"), flags);
throw new ArgumentException (msg, "KeyContainerPermissionFlags");
}
}
}
-#endif