Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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; } } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EdmMember.cs
- PropertyNames.cs
- MouseGestureValueSerializer.cs
- XmlAttributeAttribute.cs
- Label.cs
- ManagedCodeMarkers.cs
- System.Data_BID.cs
- DbSetClause.cs
- WindowsSlider.cs
- SymbolTable.cs
- ContentElementAutomationPeer.cs
- ContentElement.cs
- _ServiceNameStore.cs
- X509SecurityToken.cs
- TagPrefixAttribute.cs
- SortQueryOperator.cs
- NamespaceQuery.cs
- BlockUIContainer.cs
- HttpPostLocalhostServerProtocol.cs
- DispatcherFrame.cs
- PropertyGroupDescription.cs
- FtpWebResponse.cs
- querybuilder.cs
- SRef.cs
- httpserverutility.cs
- RecognizerBase.cs
- DataKeyCollection.cs
- CodeDefaultValueExpression.cs
- WorkerRequest.cs
- DetailsView.cs
- StyleXamlParser.cs
- PersonalizationStateInfoCollection.cs
- LoginView.cs
- FileChangesMonitor.cs
- TemplateXamlParser.cs
- Label.cs
- CompositeDuplexBindingElement.cs
- Selection.cs
- ListCollectionView.cs
- TypedTableBase.cs
- BrowserCapabilitiesCompiler.cs
- BinaryObjectInfo.cs
- HelpInfo.cs
- CodeMemberField.cs
- TextRenderer.cs
- UnknownExceptionActionHelper.cs
- UserControl.cs
- MethodBody.cs
- VScrollBar.cs
- ISO2022Encoding.cs
- TypedOperationInfo.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- FlowDocument.cs
- RadialGradientBrush.cs
- Pkcs7Recipient.cs
- CannotUnloadAppDomainException.cs
- Common.cs
- OutputCacheEntry.cs
- DispatcherEventArgs.cs
- Keyboard.cs
- DependsOnAttribute.cs
- SqlServices.cs
- HttpCachePolicyElement.cs
- Sql8ExpressionRewriter.cs
- BaseParser.cs
- CompositeDuplexBindingElement.cs
- HttpApplicationFactory.cs
- MultiViewDesigner.cs
- ContainerParaClient.cs
- Selector.cs
- PrinterUnitConvert.cs
- HotSpotCollection.cs
- WebScriptServiceHostFactory.cs
- Axis.cs
- RequestCachePolicy.cs
- ControlBindingsConverter.cs
- AddInIpcChannel.cs
- DtrList.cs
- CompositeFontParser.cs
- MonthCalendar.cs
- Facet.cs
- WebConfigurationHost.cs
- WebEventCodes.cs
- TCPListener.cs
- IndexedEnumerable.cs
- BinaryFormatterSinks.cs
- Set.cs
- WebPartTransformer.cs
- QueryOperator.cs
- FontUnit.cs
- AccessedThroughPropertyAttribute.cs
- DataBoundControlHelper.cs
- KeyedCollection.cs
- OdbcConnectionFactory.cs
- Task.cs
- FocusChangedEventArgs.cs
- DirectoryRedirect.cs
- SqlUserDefinedTypeAttribute.cs
- SiteIdentityPermission.cs
- IntegerCollectionEditor.cs