Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / DataAccess / ADConnectionHelper.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- OperationResponse.cs
- PeerCollaborationPermission.cs
- UnsafeNativeMethodsCLR.cs
- BitmapEffectGroup.cs
- NotImplementedException.cs
- BooleanFacetDescriptionElement.cs
- MimeParameterWriter.cs
- DataObjectCopyingEventArgs.cs
- HealthMonitoringSectionHelper.cs
- infer.cs
- BooleanStorage.cs
- XmlSchemaValidator.cs
- TabPage.cs
- ReversePositionQuery.cs
- VectorValueSerializer.cs
- MonthChangedEventArgs.cs
- TraceXPathNavigator.cs
- WebPartChrome.cs
- FileAuthorizationModule.cs
- WriterOutput.cs
- _IPv4Address.cs
- NamedPipeTransportBindingElement.cs
- NamespaceCollection.cs
- DebugTracing.cs
- TrackingProfile.cs
- SharedStatics.cs
- CollectionViewProxy.cs
- DataViewSettingCollection.cs
- TabControlEvent.cs
- ProvidersHelper.cs
- CounterSample.cs
- BaseDataListActionList.cs
- DecoderExceptionFallback.cs
- LocalizableAttribute.cs
- ProtectedProviderSettings.cs
- TogglePatternIdentifiers.cs
- TrustLevelCollection.cs
- TypeDependencyAttribute.cs
- WebPartEventArgs.cs
- Oci.cs
- RegexCompiler.cs
- MaskPropertyEditor.cs
- DataGridViewSelectedRowCollection.cs
- LambdaSerializationException.cs
- SynchronizationLockException.cs
- XmlUTF8TextReader.cs
- ThreadStartException.cs
- PrintPreviewGraphics.cs
- GridPattern.cs
- KoreanLunisolarCalendar.cs
- EnumConverter.cs
- HtmlInputRadioButton.cs
- DodSequenceMerge.cs
- XPathNavigatorReader.cs
- IISUnsafeMethods.cs
- DbMetaDataFactory.cs
- XmlSerializerSection.cs
- SerializationHelper.cs
- AutoCompleteStringCollection.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- TiffBitmapDecoder.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- LogicalMethodInfo.cs
- CopyNamespacesAction.cs
- Style.cs
- SQLRoleProvider.cs
- PageOutputQuality.cs
- SecurityImpersonationBehavior.cs
- EnumUnknown.cs
- Expander.cs
- ManagementNamedValueCollection.cs
- AuthorizationRuleCollection.cs
- RecordConverter.cs
- RichTextBox.cs
- CurrentChangedEventManager.cs
- PermissionAttributes.cs
- ResolveMatchesMessageCD1.cs
- FontNameEditor.cs
- Parameter.cs
- ConfigurationStrings.cs
- HatchBrush.cs
- ConnectorMovedEventArgs.cs
- HiddenFieldPageStatePersister.cs
- DesignerProperties.cs
- CodePropertyReferenceExpression.cs
- ChannelSinkStacks.cs
- LinearGradientBrush.cs
- SchemaEntity.cs
- Semaphore.cs
- ObjectTag.cs
- IResourceProvider.cs
- RemotingAttributes.cs
- IndexerNameAttribute.cs
- EncryptedKey.cs
- SkinIDTypeConverter.cs
- CompositeDataBoundControl.cs
- HandleTable.cs
- FormsAuthenticationModule.cs
- ShapeTypeface.cs
- ProviderSettingsCollection.cs