~ifolder-dev/simias/trunk-packaging

« back to all changes in this revision

Viewing changes to src/core/DomainProvider/.svn/text-base/IDomainProvider.cs.svn-base

  • Committer: Jorge O. Castro
  • Date: 2007-12-03 06:56:46 UTC
  • Revision ID: jorge@ubuntu.com-20071203065646-mupcnjcwgm5mnhyt
* Remove a bunch of .svn directories we no longer need.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/****************************************************************************
2
 
 |
3
 
 | Copyright (c) 2007 Novell, Inc.
4
 
 | All Rights Reserved.
5
 
 |
6
 
 | This program is free software; you can redistribute it and/or
7
 
 | modify it under the terms of version 2 of the GNU General Public License as
8
 
 | published by the Free Software Foundation.
9
 
 |
10
 
 | This program is distributed in the hope that it will be useful,
11
 
 | but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 
 | GNU General Public License for more details.
14
 
 |
15
 
 | You should have received a copy of the GNU General Public License
16
 
 | along with this program; if not, contact Novell, Inc.
17
 
 |
18
 
 | To contact Novell about this file by physical or electronic mail,
19
 
 | you may find current contact information at www.novell.com 
20
 
 |
21
 
 |  Author: Mike Lasky <mlasky@novell.com>
22
 
 |***************************************************************************/
23
 
 
24
 
using System;
25
 
using System.Web;
26
 
 
27
 
using Simias.Authentication;
28
 
using Simias.Storage;
29
 
 
30
 
namespace Simias
31
 
{
32
 
        /// <summary>
33
 
        /// Interface for a Domain Provider Service.
34
 
        /// </summary>
35
 
        public interface IDomainProvider
36
 
        {
37
 
                #region Properties
38
 
                /// <summary>
39
 
                /// Gets the name of the domain provider.
40
 
                /// </summary>
41
 
                string Name { get; }
42
 
 
43
 
                /// <summary>
44
 
                /// Gets the description of the domain provider.
45
 
                /// </summary>
46
 
                string Description { get; }
47
 
                #endregion
48
 
 
49
 
                #region Public Methods
50
 
                /// <summary>
51
 
                /// Performs authentication to the specified domain.
52
 
                /// </summary>
53
 
                /// <param name="domain">Domain to authenticate to.</param>
54
 
                /// <param name="httpContext">HTTP-specific request information. This is passed as a parameter so that a domain 
55
 
                /// provider may modify the HTTP request by adding special headers as necessary.
56
 
                /// 
57
 
                /// NOTE: The domain provider must NOT end the HTTP request.
58
 
                /// </param>
59
 
                /// <returns>The status from the authentication.</returns>
60
 
                Authentication.Status Authenticate( Domain domain, HttpContext httpContext );
61
 
 
62
 
                /// <summary>
63
 
                /// Indicates to the provider that the specified collection has
64
 
                /// been deleted and a mapping is no longer required.
65
 
                /// </summary>
66
 
                /// <param name="domainID">The identifier for the domain from
67
 
                /// where the collection has been deleted.</param>
68
 
                /// <param name="collectionID">Identifier of the collection that
69
 
                /// is being deleted.</param>
70
 
                void DeleteLocation( string domainID, string collectionID );
71
 
 
72
 
                /// <summary>
73
 
                /// End the search for domain members.
74
 
                /// </summary>
75
 
                /// <param name="searchContext">Domain provider specific search context returned by FindFirstDomainMembers or
76
 
                /// FindNextDomainMembers methods.</param>
77
 
                void FindCloseDomainMembers( string searchContext );
78
 
 
79
 
                /// <summary>
80
 
                /// Starts a search for all domain members.
81
 
                /// </summary>
82
 
                /// <param name="domainID">The identifier of the domain to search for members in.</param>
83
 
                /// <param name="count">Maximum number of member objects to return.</param>
84
 
                /// <param name="searchContext">Receives a provider specific search context object. This object must be serializable.</param>
85
 
                /// <param name="memberList">Receives an array object that contains the domain Member objects.</param>
86
 
                /// <param name="total">Receives the total number of objects found in the search.</param>
87
 
                /// <returns>True if there are more domain members. Otherwise false is returned.</returns>
88
 
                bool FindFirstDomainMembers( string domainID, int count, out string searchContext, out Member[] memberList, out int total );
89
 
 
90
 
                /// <summary>
91
 
                /// Starts a search for a specific set of domain members.
92
 
                /// </summary>
93
 
                /// <param name="domainID">The identifier of the domain to search for members in.</param>
94
 
                /// <param name="attributeName">Attribute name to search.</param>
95
 
                /// <param name="searchString">String that contains a pattern to search for.</param>
96
 
                /// <param name="operation">Type of search operation to perform.</param>
97
 
                /// <param name="count">Maximum number of member objects to return.</param>
98
 
                /// <param name="searchContext">Receives a provider specific search context object. This object must be serializable.</param>
99
 
                /// <param name="memberList">Receives an array object that contains the domain Member objects.</param>
100
 
                /// <param name="total">Receives the total number of objects found in the search.</param>
101
 
                /// <returns>True if there are more domain members. Otherwise false is returned.</returns>
102
 
                bool FindFirstDomainMembers( string domainID, string attributeName, string searchString, SearchOp operation, int count, out string searchContext, out Member[] memberList, out int total );
103
 
 
104
 
                /// <summary>
105
 
                /// Continues the search for domain members from the current record location.
106
 
                /// </summary>
107
 
                /// <param name="searchContext">Domain provider specific search context returned by FindFirstDomainMembers method.</param>
108
 
                /// <param name="count">Maximum number of member objects to return.</param>
109
 
                /// <param name="memberList">Receives an array object that contains the domain Member objects.</param>
110
 
                /// <returns>True if there are more domain members. Otherwise false is returned.</returns>
111
 
                bool FindNextDomainMembers( ref string searchContext, int count, out Member[] memberList );
112
 
 
113
 
                /// <summary>
114
 
                /// Continues the search for domain members previous to the current record location.
115
 
                /// </summary>
116
 
                /// <param name="searchContext">Domain provider specific search context returned by FindFirstDomainMembers method.</param>
117
 
                /// <param name="count">Maximum number of member objects to return.</param>
118
 
                /// <param name="memberList">Receives an array object that contains the domain Member objects.</param>
119
 
                /// <returns>True if there are more domain members. Otherwise false is returned.</returns>
120
 
                bool FindPreviousDomainMembers( ref string searchContext, int count, out Member[] memberList );
121
 
 
122
 
                /// <summary>
123
 
                /// Continues the search for domain members from the specified record location.
124
 
                /// </summary>
125
 
                /// <param name="searchContext">Domain provider specific search context returned by FindFirstDomainMembers method.</param>
126
 
                /// <param name="offset">Record offset to return members from.</param>
127
 
                /// <param name="count">Maximum number of member objects to return.</param>
128
 
                /// <param name="memberList">Receives an array object that contains the domain Member objects.</param>
129
 
                /// <returns>True if there are more domain members. Otherwise false is returned.</returns>
130
 
                bool FindSeekDomainMembers( ref string searchContext, int offset, int count, out Member[] memberList );
131
 
 
132
 
                /// <summary>
133
 
                /// Determines if the provider claims ownership for the 
134
 
                /// specified domain.
135
 
                /// </summary>
136
 
                /// <param name="domainID">Identifier of a domain.</param>
137
 
                /// <returns>True if the provider claims ownership for the 
138
 
                /// specified domain. Otherwise, False is returned.</returns>
139
 
                bool OwnsDomain( string domainID );
140
 
 
141
 
                /// <summary>
142
 
                /// Informs the domain provider that the specified member object is about to be
143
 
                /// committed to the domain's member list. This allows an opportunity for the 
144
 
                /// domain provider to add any domain specific attributes to the member object.
145
 
                /// </summary>
146
 
                /// <param name="domainID">Identifier of a domain.</param>
147
 
                /// <param name="member">Member object that is about to be committed to the domain's member list.</param>
148
 
                void PreCommit( string domainID, Member member );
149
 
 
150
 
                /// <summary>
151
 
                /// Returns the network location for the the specified
152
 
                /// domain.
153
 
                /// </summary>
154
 
                /// <param name="domainID">Identifier for the domain.</param>
155
 
                /// <returns>A Uri object that contains the network location.
156
 
                /// </returns>
157
 
                Uri ResolveLocation( string domainID );
158
 
 
159
 
                /// <summary>
160
 
                /// Returns the network location for the the specified
161
 
                /// collection.
162
 
                /// </summary>
163
 
                /// <param name="domainID">Identifier for the domain that the
164
 
                /// collection belongs to.</param>
165
 
                /// <param name="collectionID">Identifier of the collection to
166
 
                /// find the network location for.</param>
167
 
                /// <returns>A Uri object that contains the network location.
168
 
                /// </returns>
169
 
                Uri ResolveLocation( string domainID, string collectionID );
170
 
 
171
 
                /// <summary>
172
 
                /// Returns the network location of where to create a collection.
173
 
                /// </summary>
174
 
                /// <param name="domainID">Identifier of the domain where a 
175
 
                /// collection is to be created.</param>
176
 
                /// <param name="userID">The member that will own the 
177
 
                /// collection.</param>
178
 
                /// <param name="collectionID">Identifier of the collection that
179
 
                /// is being created.</param>
180
 
                /// <returns>A Uri object that contains the network location.
181
 
                /// </returns>
182
 
                Uri ResolveLocation( string domainID, string userID, string collectionID );
183
 
 
184
 
                /// <summary>
185
 
                /// Returns the network location of where to the specified user's POBox is located.
186
 
                /// </summary>
187
 
                /// <param name="domainID">Identifier of the domain where a 
188
 
                /// collection is to be created.</param>
189
 
                /// <param name="userID">The member that will owns the POBox.</param>
190
 
                /// <returns>A Uri object that contains the network location.
191
 
                /// </returns>
192
 
                Uri ResolvePOBoxLocation( string domainID, string userID );
193
 
 
194
 
                /// <summary>
195
 
                /// Returns the network address of the host
196
 
                /// </summary>
197
 
                /// <param name="domainID">Identifier of the domain where a 
198
 
                /// collection is to be created.</param>
199
 
                /// <param name="hostID">The host to resolve.</param>
200
 
                /// <returns>A Uri object that contains the network location.</returns>
201
 
                Uri ResolveHostAddress( string domainID, string hostID );
202
 
 
203
 
                /// <summary>
204
 
                /// Sets a new host address for the domain.
205
 
                /// </summary>
206
 
                /// <param name="domainID">Identifier of the domain for network address
207
 
                /// to be changed.</param>
208
 
                /// <param name="hostLocation">A Uri object containing the new network
209
 
                /// address for the domain.</param>
210
 
                void SetHostLocation( string domainID, Uri hostLocation );
211
 
                #endregion
212
 
        }
213
 
}