Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Pouliot <sebastien@ximian.com>2004-08-05 19:58:54 +0400
committerSebastien Pouliot <sebastien@ximian.com>2004-08-05 19:58:54 +0400
commit30efeb9bcdecd2cd5aed41847ad89026958df422 (patch)
tree40a41e14b3c2b9cab4d74ed00ecf32204cece3dc /mcs/class/corlib/System.Security.Permissions
parentb02c2793e307301463c4ed1e5ddfd047b5ab0b32 (diff)
2004-08-05 Sebastien Pouliot <sebastien@ximian.com>
* PrincipalPermission.cs: Added Equals/GetHashCode for NET_2_0. * SecurityPermissionAttribute.cs: Added new BindingRedirects property for NET_2_0. svn path=/trunk/mcs/; revision=31938
Diffstat (limited to 'mcs/class/corlib/System.Security.Permissions')
-rw-r--r--mcs/class/corlib/System.Security.Permissions/ChangeLog6
-rw-r--r--mcs/class/corlib/System.Security.Permissions/PrincipalPermission.cs48
-rw-r--r--mcs/class/corlib/System.Security.Permissions/SecurityPermissionAttribute.cs16
3 files changed, 63 insertions, 7 deletions
diff --git a/mcs/class/corlib/System.Security.Permissions/ChangeLog b/mcs/class/corlib/System.Security.Permissions/ChangeLog
index 41f536b5745..205de4d9c38 100644
--- a/mcs/class/corlib/System.Security.Permissions/ChangeLog
+++ b/mcs/class/corlib/System.Security.Permissions/ChangeLog
@@ -1,3 +1,9 @@
+2004-08-05 Sebastien Pouliot <sebastien@ximian.com>
+
+ * PrincipalPermission.cs: Added Equals/GetHashCode for NET_2_0.
+ * SecurityPermissionAttribute.cs: Added new BindingRedirects property
+ for NET_2_0.
+
2004-08-04 Sebastien Pouliot <sebastien@ximian.com>
* GacIdentityPermission.cs: New. for NET_2_0
diff --git a/mcs/class/corlib/System.Security.Permissions/PrincipalPermission.cs b/mcs/class/corlib/System.Security.Permissions/PrincipalPermission.cs
index d1f23c091a5..c4e27c19dd5 100644
--- a/mcs/class/corlib/System.Security.Permissions/PrincipalPermission.cs
+++ b/mcs/class/corlib/System.Security.Permissions/PrincipalPermission.cs
@@ -2,12 +2,9 @@
// System.Security.Permissions.PrincipalPermission.cs
//
// Author
-// Sebastien Pouliot <spouliot@motus.com>
+// Sebastien Pouliot <sebastien@ximian.com>
//
// Copyright (C) 2003 Motus Technologies. http://www.motus.com
-//
-
-//
// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
//
// Permission is hereby granted, free of charge, to any person obtaining
@@ -47,7 +44,8 @@ namespace System.Security.Permissions {
private string _role;
private bool _isAuthenticated;
- public PrincipalInfo (string name, string role, bool isAuthenticated) {
+ public PrincipalInfo (string name, string role, bool isAuthenticated)
+ {
_name = name;
_role = role;
_isAuthenticated = isAuthenticated;
@@ -278,10 +276,48 @@ namespace System.Security.Permissions {
return union;
}
+#if NET_2_0
+ public override bool Equals (object obj)
+ {
+ if (obj == null)
+ return false;
+ PrincipalPermission pp = (obj as PrincipalPermission);
+ if (pp == null)
+ return false;
+
+ // same number of principals ?
+ if (principals.Count != pp.principals.Count)
+ return false;
+
+ // then all principals in "this" should be in "pp"
+ foreach (PrincipalInfo pi in principals) {
+ bool thisItem = false;
+ foreach (PrincipalInfo opi in pp.principals) {
+ if (((pi.Name == opi.Name) || (opi.Name == null)) &&
+ ((pi.Role == opi.Role) || (opi.Role == null)) &&
+ (pi.IsAuthenticated == opi.IsAuthenticated)) {
+ thisItem = true;
+ break;
+ }
+ }
+ if (!thisItem)
+ return false;
+ }
+ return true;
+ }
+
+ // according to documentation (fx 2.0 beta 1) we can have
+ // different hash code even if both a Equals
+ public override int GetHashCode ()
+ {
+ return base.GetHashCode ();
+ }
+#endif
+
// IBuiltInPermission
int IBuiltInPermission.GetTokenIndex ()
{
return 8;
}
}
-} \ No newline at end of file
+}
diff --git a/mcs/class/corlib/System.Security.Permissions/SecurityPermissionAttribute.cs b/mcs/class/corlib/System.Security.Permissions/SecurityPermissionAttribute.cs
index a6ce8caadd4..d251aa7a5c3 100644
--- a/mcs/class/corlib/System.Security.Permissions/SecurityPermissionAttribute.cs
+++ b/mcs/class/corlib/System.Security.Permissions/SecurityPermissionAttribute.cs
@@ -67,7 +67,21 @@ namespace System.Security.Permissions {
}
}
}
-
+#if NET_2_0
+ public bool BindingRedirects {
+ get {
+ return ((m_Flags & SecurityPermissionFlag.BindingRedirects) != 0);
+ }
+ set {
+ if (value) {
+ m_Flags |= SecurityPermissionFlag.BindingRedirects;
+ }
+ else{
+ m_Flags &= SecurityPermissionFlag.BindingRedirects;
+ }
+ }
+ }
+#endif
public bool ControlAppDomain {
get {
return ((m_Flags & SecurityPermissionFlag.ControlAppDomain) != 0);