text.skipToContent text.skipToNavigation
  1. Home
  2. Computer Science & IT
  3. .NET Developer's Guide to Directory Services Programming, The

.NET Developer's Guide to Directory Services Programming, The, 1st edition

  • Joe Kaplan
  • Ryan Dunn

Published by Addison-Wesley Professional (May 8th 2006) - Copyright © 2006

1st edition

.NET Developer's Guide to Directory Services Programming, The

ISBN-13: 9780132800570

Includes: Instant Access

This product is not available in your country

What's included

  • Instant Access

    You'll get instant access to the digital content.


“If you have any interest in writing .NET programs using Active Directory or ADAM, this is the book you want to read.”
—Joe Richards, Microsoft MVP, directory services

Identity and Access Management are rapidly gaining importance as key areas of practice in the IT industry, and directory services provide the fundamental building blocks that enable them. For enterprise developers struggling to build directory-enabled .NET applications, The .NET Developer’s Guide to Directory Services Programming will come as a welcome aid.

Microsoft MVPs Joe Kaplan and Ryan Dunn have written a practical introduction to programming directory services, using both versions 1.1 and 2.0 of the .NET Framework. The extensive examples in the book are in C#; a companion Web site includes both C# and Visual Basic source code and examples.

Readers will

  • Learn to create, rename, update, and delete objects in Active Directory and ADAM
  • Learn to bind to and search directories effectively and efficiently
  • Learn to read and write attributes of all types in the directory
  • Learn to use directory services within ASP.NET applications
  • Get concrete examples of common programming tasks such as managing Active Directory and ADAM users and groups, and performing authentication

Experienced .NET developers—those building enterprise applications or simply interested in learning about directory services—will find that The .NET Developer’s Guide to Directory Services Programming unravels the complexities and helps them to avoid the common pitfalls that developers face.

Table of contents

Listings xv

Tables xix

Foreword xxi

Preface xxiii

Acknowledgments xxix

About the Authors xxxi

Part I: Fundamentals 1

Chapter 1: Introduction to LDAP and Active Directory 3

A Brief History of Directory Services 3

Definition of LDAP 4

Definition of Active Directory 5

Definition of ADAM 7

LDAP Basics 11

Chapter 2: Introduction to .NET Directory Services Programming 27

.NET Directory Services Programming Landscape 27

Native Directory Services Programming Landscape 29

System.DirectoryServices Overview 32

System.DirectoryServices.ActiveDirectory Overview 40

System.DirectoryServices.Protocols Overview 43

Selecting the Right Technology 49

Chapter 3: Binding and CRUD Operations with DirectoryEntry 53

Property and Method Overview 54

Binding to the Directory 62

Directory CRUD Operations 98

Chapter 4: Searching with the DirectorySearcher 109

LDAP Searching Overview 109

DirectorySearcher Overview 111

The Basics of Searching 115

Building LDAP Filters 118

Controlling the Content of Search Results 136

Executing the Query and Enumerating Results 139

Returning Many Results with Paged Searches 143

Sorting Search Results 146

Chapter 5: Advanced LDAP Searches 149

Administrative Limits Governing Active Directory and ADAM 150

Understanding Searching Timeouts 152

Optimizing Search Performance 154

Searching the Global Catalog 158

Chasing Referrals 161

Virtual List View Searches 162

Searching for Deleted Objects 169

Directory Synchronization Queries 171

Using Attribute Scope Query 178

Extended DN Queries 181

Reading Security Descriptors with Security Masks 183

Asynchronous Searches 185

Chapter 6: Reading and Writing LDAP Attributes 193

Basics of Reading Attribute Values 193

Collection Class Usage 195

Understanding the ADSI Property Cache 199

LDAP Data Types in .NET 200

ADSI Schema Mapping Mechanism 206

.NET Attribute Value Conversion 213

Standard Data Types 214

Binary Data Conversion 215

COM Interop Data Types 216

Syntactic versus Semantic Conversion 229

Dealing with Attributes with Many Values 230

Basics of Writing Attribute Values 234

Writing COM Interop Types 241

Chapter 7: Active Directory and ADAM Schema 247

Schema Extension Best Practices 247

Choosing an Object Class 251

Choosing Attribute Syntaxes 253

Modeling One-to-Many and Many-to-Many Relationships 256

Search Flags and Indexing 261

Techniques for Extending the Schema 264

Discovering Schema Information at Runtime 266

Chapter 8: Security in Directory Services Programming 273

Binding and Delegation 274

Directory Object Permissions in Active Directory and ADAM 300

Code Access Security 315

Chapter 9: Introduction to the ActiveDirectory Namespace 325

Working with the DirectoryContext Class 326

Locating Domain Controllers 332

Understanding the Active Directory RPC APIs 339

Useful Shortcuts for Developers 339

Part II: Practical Applications 345

Chapter 10: User Management 347

Finding Users 347

Creating Users 351

Managing User Account Features 353

Managing Passwords for Active Directory Users 376

Managing Passwords for ADAM Users 386

Determining User Group Membership in Active Directory and ADAM 389

Chapter 11: Group Management 397

Creating Groups in Active Directory and ADAM 397

Manipulating Group Membership 400

Expanding Group Membership 403

Primary Group Membership 409

Foreign Security Principals 413

Chapter 12: Authentication 417

Authentication Using SDS 418


For teachers

All the material you need to teach your courses.

Discover teaching material