Add licensing info
[mono.git] / mcs / class / Novell.Directory.Ldap / Novell.Directory.Ldap / LdapAuthHandler.cs
1
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining
4 // a copy of this software and associated documentation files (the
5 // "Software"), to deal in the Software without restriction, including
6 // without limitation the rights to use, copy, modify, merge, publish,
7 // distribute, sublicense, and/or sell copies of the Software, and to
8 // permit persons to whom the Software is furnished to do so, subject to
9 // the following conditions:
10 // 
11 // The above copyright notice and this permission notice shall be
12 // included in all copies or substantial portions of the Software.
13 // 
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 //
22 /******************************************************************************
23 * The MIT License
24 * Copyright (c) 2003 Novell Inc.  www.novell.com
25
26 * Permission is hereby granted, free of charge, to any person obtaining  a copy
27 * of this software and associated documentation files (the Software), to deal
28 * in the Software without restriction, including  without limitation the rights
29 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
30 * copies of the Software, and to  permit persons to whom the Software is 
31 * furnished to do so, subject to the following conditions:
32
33 * The above copyright notice and this permission notice shall be included in 
34 * all copies or substantial portions of the Software.
35
36 * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
37 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
38 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
39 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
40 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
41 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
42 * SOFTWARE.
43 *******************************************************************************/
44 //
45 // Novell.Directory.Ldap.LdapAuthHandler.cs
46 //
47 // Author:
48 //   Sunil Kumar (Sunilk@novell.com)
49 //
50 // (C) 2003 Novell, Inc (http://www.novell.com)
51 //
52
53 using System;
54 namespace Novell.Directory.Ldap
55 {
56         
57         /// <summary> 
58         /// Used to provide credentials for authentication when processing a
59         /// referral.
60         /// 
61         /// A programmer desiring to supply authentication credentials
62         /// to the API when automatically following referrals MUST
63         /// implement this interface. If LdapAuthHandler or LdapBindHandler are not
64         /// implemented, automatically followed referrals will use anonymous
65         /// authentication. Referral URLs of any type other than Ldap (i.e. a
66         /// referral URL other than ldap://something) are not chased automatically
67         /// by the API on automatic following.
68         /// 
69         /// 
70         /// </summary>
71         /// <seealso cref="LdapBindHandler">
72         /// </seealso>
73         /// <seealso cref="LdapConstraints.ReferralFollowing">
74         /// </seealso>
75         public interface LdapAuthHandler : LdapReferralHandler
76                 {
77                         
78                         /// <summary> Returns an object which can provide credentials for authenticating to
79                         /// a server at the specified host and port.
80                         /// 
81                         /// </summary>
82                         /// <param name="host">   Contains a host name or the IP address (in dotted string
83                         /// format) of a host running an Ldap server.
84                         /// 
85                         /// </param>
86                         /// <param name="port">   Contains the TCP or UDP port number of the host.
87                         /// 
88                         /// </param>
89                         /// <returns> An object with authentication credentials to the specified
90                         /// host and port.
91                         /// </returns>
92                         LdapAuthProvider getAuthProvider(System.String host, int port);
93                 }
94 }