Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / DataAccess / ADConnectionHelper.cs / 1 / ADConnectionHelper.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.DataAccess { using System.Net; using System.Diagnostics; using System.Web.Hosting; using System.Web.Security; using System.DirectoryServices; using System.DirectoryServices.Protocols; internal static class ActiveDirectoryConnectionHelper { internal static DirectoryEntryHolder GetDirectoryEntry(DirectoryInformation directoryInfo, string objectDN, bool revertImpersonation) { Debug.Assert ((objectDN != null) && (objectDN.Length != 0)); // // Get the adspath and create a directory entry holder // DirectoryEntryHolder holder = new DirectoryEntryHolder(new DirectoryEntry ( directoryInfo.GetADsPath(objectDN), directoryInfo.GetUsername(), directoryInfo.GetPassword(), directoryInfo.AuthenticationTypes)); // // If revertImpersonation is true, we need to revert // holder.Open(null, revertImpersonation); return holder; } } internal sealed class DirectoryEntryHolder { private ImpersonationContext ctx = null; private bool opened; private DirectoryEntry entry; internal DirectoryEntryHolder (DirectoryEntry entry) { Debug.Assert (entry != null); this.entry = entry; } internal void Open (HttpContext context, bool revertImpersonate) { if (opened) return; // Already opened // // Revert client impersonation if required // if (revertImpersonate) { ctx = new ApplicationImpersonationContext(); } else { ctx = null; } opened = true; // Open worked! } internal void Close () { if (!opened) // Not open! return; entry.Dispose(); RestoreImpersonation(); opened = false; } internal void RestoreImpersonation() { // Restore impersonation if (ctx != null) { ctx.Undo(); ctx = null; } } internal DirectoryEntry DirectoryEntry { get { return entry; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.DataAccess { using System.Net; using System.Diagnostics; using System.Web.Hosting; using System.Web.Security; using System.DirectoryServices; using System.DirectoryServices.Protocols; internal static class ActiveDirectoryConnectionHelper { internal static DirectoryEntryHolder GetDirectoryEntry(DirectoryInformation directoryInfo, string objectDN, bool revertImpersonation) { Debug.Assert ((objectDN != null) && (objectDN.Length != 0)); // // Get the adspath and create a directory entry holder // DirectoryEntryHolder holder = new DirectoryEntryHolder(new DirectoryEntry ( directoryInfo.GetADsPath(objectDN), directoryInfo.GetUsername(), directoryInfo.GetPassword(), directoryInfo.AuthenticationTypes)); // // If revertImpersonation is true, we need to revert // holder.Open(null, revertImpersonation); return holder; } } internal sealed class DirectoryEntryHolder { private ImpersonationContext ctx = null; private bool opened; private DirectoryEntry entry; internal DirectoryEntryHolder (DirectoryEntry entry) { Debug.Assert (entry != null); this.entry = entry; } internal void Open (HttpContext context, bool revertImpersonate) { if (opened) return; // Already opened // // Revert client impersonation if required // if (revertImpersonate) { ctx = new ApplicationImpersonationContext(); } else { ctx = null; } opened = true; // Open worked! } internal void Close () { if (!opened) // Not open! return; entry.Dispose(); RestoreImpersonation(); opened = false; } internal void RestoreImpersonation() { // Restore impersonation if (ctx != null) { ctx.Undo(); ctx = null; } } internal DirectoryEntry DirectoryEntry { get { return entry; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextTreeRootTextBlock.cs
- DataGrid.cs
- PropertyAccessVisitor.cs
- JoinTreeNode.cs
- VisualBasicDesignerHelper.cs
- AutoGeneratedField.cs
- ActivityValidationServices.cs
- ElementsClipboardData.cs
- Processor.cs
- WebBaseEventKeyComparer.cs
- EdmTypeAttribute.cs
- AttributeUsageAttribute.cs
- ExpressionBindingCollection.cs
- SizeFConverter.cs
- QilFactory.cs
- PersonalizableAttribute.cs
- GridSplitter.cs
- RecommendedAsConfigurableAttribute.cs
- Viewport2DVisual3D.cs
- Part.cs
- baseaxisquery.cs
- XXXOnTypeBuilderInstantiation.cs
- ByteAnimationBase.cs
- VariantWrapper.cs
- Adorner.cs
- SourceItem.cs
- RectAnimationClockResource.cs
- ConfigXmlCDataSection.cs
- CriticalFinalizerObject.cs
- SerializationStore.cs
- MouseButton.cs
- ProcessStartInfo.cs
- MatcherBuilder.cs
- DataPointer.cs
- TreeBuilder.cs
- FlowDocument.cs
- RadioButton.cs
- EndOfStreamException.cs
- WebPartsPersonalizationAuthorization.cs
- GroupBox.cs
- ListItem.cs
- Size.cs
- SiteMapPath.cs
- CodeValidator.cs
- ScriptDescriptor.cs
- EventLogException.cs
- Point4D.cs
- ObjRef.cs
- Timer.cs
- DirectoryNotFoundException.cs
- DeflateStream.cs
- WindowsPrincipal.cs
- MatrixValueSerializer.cs
- RegexCapture.cs
- ModelItemDictionary.cs
- InternalBase.cs
- XamlTypeMapper.cs
- KeyInterop.cs
- DurableErrorHandler.cs
- XPathMessageFilterTable.cs
- XMLUtil.cs
- Types.cs
- NativeWindow.cs
- DataServiceSaveChangesEventArgs.cs
- XhtmlTextWriter.cs
- SerializableAttribute.cs
- IISMapPath.cs
- CursorConverter.cs
- Context.cs
- PropertyToken.cs
- ProfileSection.cs
- WorkflowPageSetupDialog.cs
- _ScatterGatherBuffers.cs
- IBuiltInEvidence.cs
- DataConnectionHelper.cs
- SqlDataSourceView.cs
- FileDialogPermission.cs
- SQLMoneyStorage.cs
- InstanceDataCollectionCollection.cs
- DataBindingsDialog.cs
- ApplicationServiceHelper.cs
- Interop.cs
- Int32Rect.cs
- FontInfo.cs
- DataViewManagerListItemTypeDescriptor.cs
- ValueUtilsSmi.cs
- SharedPerformanceCounter.cs
- ScriptManager.cs
- CollectionBase.cs
- WebPartDeleteVerb.cs
- ReadOnlyHierarchicalDataSource.cs
- DesignerCatalogPartChrome.cs
- LineBreakRecord.cs
- XmlRawWriter.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- TextContainerHelper.cs
- InstanceNameConverter.cs
- FullTextLine.cs
- MenuCommands.cs
- AssociationEndMember.cs