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
- ColorTranslator.cs
- WindowsToolbar.cs
- CodeCatchClauseCollection.cs
- DecimalConstantAttribute.cs
- PropertyTab.cs
- GridViewCommandEventArgs.cs
- ChannelListenerBase.cs
- TextTreeText.cs
- XhtmlConformanceSection.cs
- AndCondition.cs
- UrlPath.cs
- MemberAssignmentAnalysis.cs
- unitconverter.cs
- CustomServiceCredentials.cs
- SafeEventLogReadHandle.cs
- ZipIOCentralDirectoryBlock.cs
- GraphicsContainer.cs
- Knowncolors.cs
- CodeThrowExceptionStatement.cs
- Hashtable.cs
- CodeDelegateCreateExpression.cs
- GPPOINTF.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- DataGridViewButtonColumn.cs
- DataGridViewCellConverter.cs
- _LoggingObject.cs
- VerificationAttribute.cs
- ImageAnimator.cs
- SqlTriggerContext.cs
- WindowsStartMenu.cs
- XmlNamespaceDeclarationsAttribute.cs
- DelegateSerializationHolder.cs
- SByte.cs
- PriorityRange.cs
- BuildProvidersCompiler.cs
- ProxyGenerator.cs
- SoapSchemaExporter.cs
- _Win32.cs
- HelpProvider.cs
- ComplexBindingPropertiesAttribute.cs
- mediapermission.cs
- UInt64Storage.cs
- DbParameterHelper.cs
- DataGridViewCellValueEventArgs.cs
- CompiledRegexRunner.cs
- ObjectDataSourceEventArgs.cs
- GorillaCodec.cs
- SqlRetyper.cs
- RadioButtonBaseAdapter.cs
- VisualState.cs
- GPRECTF.cs
- BinHexDecoder.cs
- MethodCallConverter.cs
- iisPickupDirectory.cs
- ScrollChrome.cs
- EventManager.cs
- TreeNodeStyle.cs
- AnimationClock.cs
- ViewKeyConstraint.cs
- ServiceHostFactory.cs
- RenderDataDrawingContext.cs
- ProcessHostMapPath.cs
- fixedPageContentExtractor.cs
- SingleSelectRootGridEntry.cs
- TcpClientChannel.cs
- DocumentEventArgs.cs
- OleDbEnumerator.cs
- TransformValueSerializer.cs
- HashCryptoHandle.cs
- Tag.cs
- InfoCardSymmetricCrypto.cs
- HTTPNotFoundHandler.cs
- BulletedListDesigner.cs
- SqlCaseSimplifier.cs
- LinkedResource.cs
- CustomError.cs
- IconHelper.cs
- Domain.cs
- ContentFilePart.cs
- CaseStatementProjectedSlot.cs
- Timer.cs
- WebServiceResponse.cs
- AdditionalEntityFunctions.cs
- MetadataArtifactLoaderCompositeResource.cs
- ToolStripItem.cs
- DeviceContext.cs
- SafeLocalAllocation.cs
- CharStorage.cs
- ImageSourceValueSerializer.cs
- AssociationEndMember.cs
- DeploymentSectionCache.cs
- DesignerTransactionCloseEvent.cs
- XPathEmptyIterator.cs
- RegexBoyerMoore.cs
- ConfigXmlDocument.cs
- DateTimeSerializationSection.cs
- GridViewActionList.cs
- Permission.cs
- Number.cs
- SafeRightsManagementQueryHandle.cs