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
- ByteAnimationUsingKeyFrames.cs
- SystemNetworkInterface.cs
- PerfCounterSection.cs
- ElapsedEventArgs.cs
- SchemaElement.cs
- ShapeTypeface.cs
- EventToken.cs
- SoapConverter.cs
- CacheAxisQuery.cs
- objectquery_tresulttype.cs
- HierarchicalDataBoundControlAdapter.cs
- SqlParameter.cs
- FileVersionInfo.cs
- PropertyGridView.cs
- ToolBarButtonClickEvent.cs
- BehaviorService.cs
- EdmItemCollection.cs
- MemberBinding.cs
- FontStretches.cs
- MailDefinition.cs
- SeekStoryboard.cs
- OleDbInfoMessageEvent.cs
- TextAnchor.cs
- COM2PropertyPageUITypeConverter.cs
- MemoryFailPoint.cs
- SpotLight.cs
- ipaddressinformationcollection.cs
- WhiteSpaceTrimStringConverter.cs
- JsonReaderWriterFactory.cs
- QueryGeneratorBase.cs
- TextEmbeddedObject.cs
- SemanticResultValue.cs
- GeometryGroup.cs
- Baml2006ReaderContext.cs
- x509utils.cs
- TrustManager.cs
- EntityCommandCompilationException.cs
- XamlReaderHelper.cs
- SqlConnectionPoolProviderInfo.cs
- TreeIterator.cs
- StorageRoot.cs
- Transform3DCollection.cs
- SqlGenericUtil.cs
- Visual3DCollection.cs
- SecureUICommand.cs
- GraphicsContext.cs
- LocalizationComments.cs
- HttpBrowserCapabilitiesWrapper.cs
- Vector3DAnimation.cs
- AssociationTypeEmitter.cs
- OSEnvironmentHelper.cs
- MTConfigUtil.cs
- ConsumerConnectionPointCollection.cs
- WorkflowHostingEndpoint.cs
- SamlDelegatingWriter.cs
- WorkflowRuntimeBehavior.cs
- RuleRef.cs
- ConnectionStringSettingsCollection.cs
- XmlUrlResolver.cs
- PointLight.cs
- Decimal.cs
- TextDecorationLocationValidation.cs
- InputBindingCollection.cs
- WebPartDisplayModeEventArgs.cs
- CommonProperties.cs
- EvidenceTypeDescriptor.cs
- CommonDialog.cs
- CornerRadius.cs
- TabItem.cs
- DrawListViewItemEventArgs.cs
- TextParagraphCache.cs
- InputMethodStateTypeInfo.cs
- VirtualizingStackPanel.cs
- XmlSiteMapProvider.cs
- NonBatchDirectoryCompiler.cs
- _emptywebproxy.cs
- CalloutQueueItem.cs
- LifetimeServices.cs
- ServiceObjectContainer.cs
- Rotation3D.cs
- ContentPresenter.cs
- COM2TypeInfoProcessor.cs
- ResolvedKeyFrameEntry.cs
- SafeCryptoHandles.cs
- StyleCollection.cs
- SQLBytesStorage.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- Zone.cs
- FixedTextPointer.cs
- SignedXml.cs
- ExpandCollapsePattern.cs
- TextTreeExtractElementUndoUnit.cs
- RegionData.cs
- ApplicationCommands.cs
- CommonProperties.cs
- EndpointDiscoveryElement.cs
- TraceSection.cs
- Attributes.cs
- safelink.cs
- DoubleKeyFrameCollection.cs