Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AdapterDictionary.cs
- Point3DAnimationUsingKeyFrames.cs
- VerificationException.cs
- PageParser.cs
- IOThreadTimer.cs
- webproxy.cs
- HighContrastHelper.cs
- TypedServiceOperationListItem.cs
- SecurityException.cs
- TimeManager.cs
- BindingElementExtensionElement.cs
- ProcessHost.cs
- StylusCaptureWithinProperty.cs
- HttpStaticObjectsCollectionBase.cs
- ButtonBaseAdapter.cs
- util.cs
- ErrorStyle.cs
- SqlDataSourceFilteringEventArgs.cs
- TraceContextEventArgs.cs
- CmsUtils.cs
- TableSectionStyle.cs
- SAPIEngineTypes.cs
- ObjectKeyFrameCollection.cs
- HighContrastHelper.cs
- TableProviderWrapper.cs
- ConfigurationValues.cs
- VariableDesigner.xaml.cs
- HttpCacheParams.cs
- EntityContainerRelationshipSetEnd.cs
- NamespaceList.cs
- TableParaClient.cs
- ScrollItemProviderWrapper.cs
- ShaperBuffers.cs
- ConnectionPoint.cs
- PositiveTimeSpanValidator.cs
- ModifierKeysConverter.cs
- MenuItemCollection.cs
- TextOptionsInternal.cs
- DependencyProperty.cs
- PartitionerStatic.cs
- NavigationService.cs
- CompareValidator.cs
- GroupItemAutomationPeer.cs
- NativeMethods.cs
- PropertyMetadata.cs
- ClassDataContract.cs
- autovalidator.cs
- RegexRunner.cs
- SQlBooleanStorage.cs
- DrawingGroup.cs
- SystemFonts.cs
- XPathSelfQuery.cs
- CompilerState.cs
- ListViewEditEventArgs.cs
- KeyNotFoundException.cs
- XmlArrayAttribute.cs
- DropSource.cs
- AutomationEventArgs.cs
- UnicastIPAddressInformationCollection.cs
- DbConnectionFactory.cs
- DelegatingConfigHost.cs
- BitmapEffect.cs
- PassportAuthentication.cs
- MemberNameValidator.cs
- XmlNamedNodeMap.cs
- PasswordBoxAutomationPeer.cs
- ContentFileHelper.cs
- Helper.cs
- TypeBuilder.cs
- BezierSegment.cs
- unsafenativemethodstextservices.cs
- PriorityQueue.cs
- TypedReference.cs
- SchemaContext.cs
- DefaultAsyncDataDispatcher.cs
- JoinCqlBlock.cs
- HostProtectionPermission.cs
- BindUriHelper.cs
- DbgCompiler.cs
- ExcludeFromCodeCoverageAttribute.cs
- QueryInterceptorAttribute.cs
- RuntimeHandles.cs
- SkewTransform.cs
- StandardToolWindows.cs
- DataSetUtil.cs
- ToolStrip.cs
- XmlObjectSerializerReadContextComplexJson.cs
- InstanceCreationEditor.cs
- StringComparer.cs
- DockingAttribute.cs
- Rect.cs
- AnnotationHighlightLayer.cs
- CDSCollectionETWBCLProvider.cs
- BuildManager.cs
- dtdvalidator.cs
- WorkflowOperationAsyncResult.cs
- XmlDocumentFieldSchema.cs
- BaseCollection.cs
- CompositeCollectionView.cs
- BindingOperations.cs