Imported Upstream version 4.6.0.150

Former-commit-id: 73e3bb1e96dd09dc931c1dfe559d2c7f7b8b02c7
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-08-23 13:20:38 +00:00
parent 02ac915603
commit b95516a3dd
239 changed files with 4096 additions and 1544 deletions

View File

@@ -33,11 +33,20 @@ namespace System.Security.AccessControl
{
public sealed class AuthorizationRuleCollection : ReadOnlyCollectionBase
{
public AuthorizationRuleCollection ()
{
}
internal AuthorizationRuleCollection (AuthorizationRule [] rules)
{
InnerList.AddRange (rules);
}
public void AddRule (AuthorizationRule rule)
{
InnerList.Add (rule);
}
public AuthorizationRule this [int index] {
get { return (AuthorizationRule) InnerList [index]; }
}

View File

@@ -216,7 +216,19 @@ namespace System.Security.AccessControl
if (!preserveInheritance && SystemAcl != null)
SystemAcl.RemoveInheritedAces ();
}
public void AddDiscretionaryAcl (byte revision, int trusted)
{
DiscretionaryAcl = new DiscretionaryAcl (IsContainer, IsDS, revision, trusted);
flags |= ControlFlags.DiscretionaryAclPresent;
}
public void AddSystemAcl(byte revision, int trusted)
{
SystemAcl = new SystemAcl (IsContainer, IsDS, revision, trusted);
flags |= ControlFlags.SystemAclPresent;
}
void CheckAclConsistency (CommonAcl acl)
{
if (IsContainer != acl.IsContainer)

View File

@@ -71,7 +71,12 @@ namespace System.Security.AccessControl
inheritanceFlags, propagationFlags, AuditFlags.None,
objectFlags, objectType, inheritedObjectType);
}
public void AddAccess (AccessControlType accessType, SecurityIdentifier sid, ObjectAccessRule rule)
{
AddAccess (accessType, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
}
[MonoTODO]
public bool RemoveAccess (AccessControlType accessType,
SecurityIdentifier sid,
@@ -94,7 +99,12 @@ namespace System.Security.AccessControl
{
throw new NotImplementedException ();
}
public bool RemoveAccess (AccessControlType accessType, SecurityIdentifier sid, ObjectAccessRule rule)
{
return RemoveAccess (accessType, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
}
public void RemoveAccessSpecific (AccessControlType accessType,
SecurityIdentifier sid,
int accessMask,
@@ -118,7 +128,12 @@ namespace System.Security.AccessControl
inheritanceFlags, propagationFlags, AuditFlags.None,
objectFlags, objectType, inheritedObjectType);
}
public void RemoveAccessSpecific (AccessControlType accessType, SecurityIdentifier sid, ObjectAccessRule rule)
{
RemoveAccessSpecific (accessType, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
}
public void SetAccess (AccessControlType accessType,
SecurityIdentifier sid,
int accessMask,
@@ -142,7 +157,12 @@ namespace System.Security.AccessControl
inheritanceFlags, propagationFlags, AuditFlags.None,
objectFlags, objectType, inheritedObjectType);
}
public void SetAccess (AccessControlType accessType, SecurityIdentifier sid, ObjectAccessRule rule)
{
SetAccess (accessType, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
}
internal override void ApplyCanonicalSortToExplicitAces ()
{
int explicitCount = GetCanonicalExplicitAceCount ();

View File

@@ -39,7 +39,11 @@ namespace System.Security.AccessControl
{
public abstract class ObjectSecurity
{
internal ObjectSecurity (CommonSecurityDescriptor securityDescriptor)
protected ObjectSecurity ()
{
}
protected ObjectSecurity (CommonSecurityDescriptor securityDescriptor)
{
if (securityDescriptor == null)
throw new ArgumentNullException ("securityDescriptor");

View File

@@ -71,7 +71,12 @@ namespace System.Security.AccessControl
inheritanceFlags, propagationFlags, auditFlags,
objectFlags, objectType, inheritedObjectType);
}
public void AddAudit (SecurityIdentifier sid, ObjectAuditRule rule)
{
AddAudit (rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
}
[MonoTODO]
public bool RemoveAudit (AuditFlags auditFlags,
SecurityIdentifier sid,
@@ -94,7 +99,12 @@ namespace System.Security.AccessControl
{
throw new NotImplementedException ();
}
public bool RemoveAudit (SecurityIdentifier sid, ObjectAuditRule rule)
{
return RemoveAudit (rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
}
public void RemoveAuditSpecific (AuditFlags auditFlags,
SecurityIdentifier sid,
int accessMask,
@@ -120,7 +130,12 @@ namespace System.Security.AccessControl
objectFlags, objectType, inheritedObjectType);
}
public void RemoveAuditSpecific (SecurityIdentifier sid, ObjectAuditRule rule)
{
RemoveAuditSpecific (rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
}
public void SetAudit (AuditFlags auditFlags,
SecurityIdentifier sid,
int accessMask,
@@ -144,7 +159,12 @@ namespace System.Security.AccessControl
inheritanceFlags, propagationFlags, auditFlags,
objectFlags, objectType, inheritedObjectType);
}
public void SetAudit (SecurityIdentifier sid, ObjectAuditRule rule)
{
SetAudit (rule.AuditFlags, sid, rule.AccessMask, rule.InheritanceFlags, rule.PropagationFlags, rule.ObjectFlags, rule.ObjectType, rule.InheritedObjectType);
}
internal override void ApplyCanonicalSortToExplicitAces ()
{
int explicitCount = GetCanonicalExplicitAceCount ();