Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / 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. //------------------------------------------------------------------------------ //// 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
- StrongNameUtility.cs
- ReadOnlyDictionary.cs
- ClientBuildManagerCallback.cs
- SimpleTypeResolver.cs
- ClientTargetSection.cs
- ReferencedCollectionType.cs
- OSFeature.cs
- CopyNodeSetAction.cs
- SqlMethodTransformer.cs
- _NTAuthentication.cs
- SecurityTimestamp.cs
- WebPartCloseVerb.cs
- TypeInfo.cs
- Query.cs
- NamespaceCollection.cs
- QilExpression.cs
- XmlWrappingWriter.cs
- UdpAnnouncementEndpoint.cs
- sqlser.cs
- XPathQilFactory.cs
- DefaultExpressionVisitor.cs
- DataGridBoolColumn.cs
- SymmetricKeyWrap.cs
- Visual3DCollection.cs
- HttpCacheVary.cs
- TabletDeviceInfo.cs
- ColorTransformHelper.cs
- UnSafeCharBuffer.cs
- SystemIPGlobalProperties.cs
- XmlMembersMapping.cs
- ResourceProviderFactory.cs
- Function.cs
- DurableInstancingOptions.cs
- PrintControllerWithStatusDialog.cs
- IntAverageAggregationOperator.cs
- MtomMessageEncodingElement.cs
- SaveFileDialog.cs
- ColumnResult.cs
- WaitHandleCannotBeOpenedException.cs
- ListControl.cs
- AssociatedControlConverter.cs
- SwitchExpression.cs
- ColorConverter.cs
- ReadOnlyTernaryTree.cs
- MulticastOption.cs
- DataControlHelper.cs
- DisableDpiAwarenessAttribute.cs
- ConfigurationStrings.cs
- ProfileGroupSettingsCollection.cs
- ElapsedEventArgs.cs
- XmlSchemaAnyAttribute.cs
- FormViewModeEventArgs.cs
- NotConverter.cs
- OleDbReferenceCollection.cs
- ThemeableAttribute.cs
- RoleService.cs
- SpellerError.cs
- InterleavedZipPartStream.cs
- SimplePropertyEntry.cs
- EdmError.cs
- BinaryCommonClasses.cs
- SortQuery.cs
- WindowsFormsHostPropertyMap.cs
- MatrixStack.cs
- XmlILIndex.cs
- TypeKeyValue.cs
- RayMeshGeometry3DHitTestResult.cs
- VisualTreeHelper.cs
- EffectiveValueEntry.cs
- ColorDialog.cs
- IItemProperties.cs
- ObsoleteAttribute.cs
- SQLRoleProvider.cs
- PathData.cs
- COMException.cs
- ListenerUnsafeNativeMethods.cs
- XmlSerializationWriter.cs
- EnumBuilder.cs
- SafeArrayTypeMismatchException.cs
- SerializationSectionGroup.cs
- CalendarDateRangeChangingEventArgs.cs
- ColorKeyFrameCollection.cs
- Bits.cs
- BasicExpressionVisitor.cs
- Underline.cs
- ApplicationFileParser.cs
- ResXResourceWriter.cs
- GiveFeedbackEvent.cs
- ChtmlFormAdapter.cs
- DTCTransactionManager.cs
- EmptyCollection.cs
- FormsAuthenticationUserCollection.cs
- TextBlock.cs
- safex509handles.cs
- HttpException.cs
- EntitySetDataBindingList.cs
- UpdatePanelTriggerCollection.cs
- SafeRightsManagementEnvironmentHandle.cs
- ISAPIWorkerRequest.cs
- ArrayItemReference.cs