I require a class, written in C# which contains the functions described below.
1) Connect to a specified LDAP provider (specifically AD) using the hostname, username, and password passed in.
2) A function that when passed a CN and an enum specifying the object type(group, or user etc) returns the DN of that object
3) Retrieve the list of groups a user is a member of
4) Retrieve the list of users in a group
5) Return a boolean for if a user is a member of a group.
Functions 2, 3, and 4 will have 2 overloads each.
The first overload will accept the CN of the object we are interested in. The second overload will accept the CN and a boolean flag for if the search/inquiry should be done recursively (IE, groups that are members of groups be used for membership checks etc.)
The first overload shall call the second overload, and pass false as the second parameter.
No libraries other than that which is included in .net 1.1 may be used.
This code will be wrtten in c#.
All exposed (public) functions will be static.
These functions can rely on non-static functions if neccesary, but would prefer everything to be static for scalability.
All code will conform to the MS coding standards. (<[login to view URL]>
)
All code will be well-factored. Sections of code that are used by multiple functions will not be repeated, but placed into helper functions etc.
This code will be well commented. All variable names, comments, etc will be in well-formed English.
## Deliverables
0) The deliverables listed in the description
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Windows XP, 2000
IIS5
.NET 1.1