Click or drag to resize
MimeKit

AccessControlList Class

An Access Control List (ACL)
Inheritance Hierarchy

Namespace: MailKit
Assembly: MailKit (in MailKit.dll) Version: 4.3.0
Syntax
C#
public class AccessControlList : List<AccessControl>

The AccessControlList type exposes the following members.

Constructors
 NameDescription
Public methodAccessControlList Initializes a new instance of the AccessControlList class.
Public methodAccessControlList(IEnumerableAccessControl) Initializes a new instance of the AccessControlList class.
Top
Properties
 NameDescription
Public propertyCapacity
(Inherited from ListAccessControl)
Public propertyCount
(Inherited from ListAccessControl)
Public propertyItem
(Inherited from ListAccessControl)
Top
Methods
 NameDescription
Public methodAdd
(Inherited from ListAccessControl)
Public methodAddRange
(Inherited from ListAccessControl)
Public methodAsReadOnly
(Inherited from ListAccessControl)
Public methodBinarySearch(T)
(Inherited from ListAccessControl)
Public methodBinarySearch(T, IComparerT)
(Inherited from ListAccessControl)
Public methodBinarySearch(Int32, Int32, T, IComparerT)
(Inherited from ListAccessControl)
Public methodClear
(Inherited from ListAccessControl)
Public methodContains
(Inherited from ListAccessControl)
Public methodConvertAllTOutput
(Inherited from ListAccessControl)
Public methodCopyTo(T)
(Inherited from ListAccessControl)
Public methodCopyTo(T, Int32)
(Inherited from ListAccessControl)
Public methodCopyTo(Int32, T, Int32, Int32)
(Inherited from ListAccessControl)
Public methodEquals
(Inherited from Object)
Public methodExists
(Inherited from ListAccessControl)
Protected methodFinalize
(Inherited from Object)
Public methodFind
(Inherited from ListAccessControl)
Public methodFindAll
(Inherited from ListAccessControl)
Public methodFindIndex(PredicateT)
(Inherited from ListAccessControl)
Public methodFindIndex(Int32, PredicateT)
(Inherited from ListAccessControl)
Public methodFindIndex(Int32, Int32, PredicateT)
(Inherited from ListAccessControl)
Public methodFindLast
(Inherited from ListAccessControl)
Public methodFindLastIndex(PredicateT)
(Inherited from ListAccessControl)
Public methodFindLastIndex(Int32, PredicateT)
(Inherited from ListAccessControl)
Public methodFindLastIndex(Int32, Int32, PredicateT)
(Inherited from ListAccessControl)
Public methodForEach
(Inherited from ListAccessControl)
Public methodGetEnumerator
(Inherited from ListAccessControl)
Public methodGetHashCode
(Inherited from Object)
Public methodGetRange
(Inherited from ListAccessControl)
Public methodGetType
(Inherited from Object)
Public methodIndexOf(T)
(Inherited from ListAccessControl)
Public methodIndexOf(T, Int32)
(Inherited from ListAccessControl)
Public methodIndexOf(T, Int32, Int32)
(Inherited from ListAccessControl)
Public methodInsert
(Inherited from ListAccessControl)
Public methodInsertRange
(Inherited from ListAccessControl)
Public methodLastIndexOf(T)
(Inherited from ListAccessControl)
Public methodLastIndexOf(T, Int32)
(Inherited from ListAccessControl)
Public methodLastIndexOf(T, Int32, Int32)
(Inherited from ListAccessControl)
Protected methodMemberwiseClone
(Inherited from Object)
Public methodRemove
(Inherited from ListAccessControl)
Public methodRemoveAll
(Inherited from ListAccessControl)
Public methodRemoveAt
(Inherited from ListAccessControl)
Public methodRemoveRange
(Inherited from ListAccessControl)
Public methodReverse
(Inherited from ListAccessControl)
Public methodReverse(Int32, Int32)
(Inherited from ListAccessControl)
Public methodSort
(Inherited from ListAccessControl)
Public methodSort(ComparisonT)
(Inherited from ListAccessControl)
Public methodSort(IComparerT)
(Inherited from ListAccessControl)
Public methodSort(Int32, Int32, IComparerT)
(Inherited from ListAccessControl)
Public methodToArray
(Inherited from ListAccessControl)
Public methodToString
(Inherited from Object)
Public methodTrimExcess
(Inherited from ListAccessControl)
Public methodTrueForAll
(Inherited from ListAccessControl)
Top
Remarks
An Access Control List (ACL) is a list of access controls defining the permissions various identities have available.
Example
C#
public static void Capabilities ()
{
    using (var client = new ImapClient ()) {
        client.Connect ("imap.gmail.com", 993, SecureSocketOptions.SslOnConnect);

        var mechanisms = string.Join (", ", client.AuthenticationMechanisms);
        Console.WriteLine ("The IMAP server supports the following SASL authentication mechanisms: {0}", mechanisms);

        client.Authenticate ("username", "password");

        if (client.Capabilities.HasFlag (ImapCapabilities.Id)) {
            var clientImplementation = new ImapImplementation { Name = "MailKit", Version = "1.0" };
            var serverImplementation = client.Identify (clientImplementation);

            Console.WriteLine ("Server implementation details:");
            foreach (var property in serverImplementation.Properties)
                Console.WriteLine ("  {0} = {1}", property.Key, property.Value);
        }

        if (client.Capabilities.HasFlag (ImapCapabilities.Acl)) {
            Console.WriteLine ("The IMAP server supports Access Control Lists.");

            Console.WriteLine ("The IMAP server supports the following access rights: {0}", client.Rights);

            Console.WriteLine ("The Inbox has the following access controls:");
            var acl = client.Inbox.GetAccessControlList ();
            foreach (var ac in acl)
                Console.WriteLine ("  {0} = {1}", ac.Name, ac.Rights);

            var myRights = client.Inbox.GetMyAccessRights ();
            Console.WriteLine ("Your current rights for the Inbox folder are: {0}", myRights);
        }

        if (client.Capabilities.HasFlag (ImapCapabilities.Quota)) {
            Console.WriteLine ("The IMAP server supports quotas.");

            Console.WriteLine ("The current quota for the Inbox is:");
            var quota = client.Inbox.GetQuota ();

            if (quota.StorageLimit.HasValue)
                Console.WriteLine ("  Limited by storage space. Using {0} out of {1} bytes.", quota.CurrentStorageSize.Value, quota.StorageLimit.Value);

            if (quota.MessageLimit.HasValue)
                Console.WriteLine ("  Limited by the number of messages. Using {0} out of {1} bytes.", quota.CurrentMessageCount.Value, quota.MessageLimit.Value);

            Console.WriteLine ("The quota root is: {0}", quota.QuotaRoot);
        }

        if (client.Capabilities.HasFlag (ImapCapabilities.Thread)) {
            if (client.ThreadingAlgorithms.Contains (ThreadingAlgorithm.OrderedSubject))
                Console.WriteLine ("The IMAP server supports threading by subject.");
            if (client.ThreadingAlgorithms.Contains (ThreadingAlgorithm.References))
                Console.WriteLine ("The IMAP server supports threading by references.");
        }

        client.Disconnect (true);
    }
}
See Also