Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SafeNativeMethods.cs
- ToolboxComponentsCreatedEventArgs.cs
- HScrollProperties.cs
- DaylightTime.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- SqlDataSourceWizardForm.cs
- MethodAccessException.cs
- WebServiceErrorEvent.cs
- TileBrush.cs
- DataGridViewCellLinkedList.cs
- _NativeSSPI.cs
- CaretElement.cs
- Stack.cs
- DBConcurrencyException.cs
- InlineObject.cs
- WebPartTransformerCollection.cs
- AxHost.cs
- ElementHostAutomationPeer.cs
- AuthenticationModuleElement.cs
- FileUtil.cs
- InternalEnumValidatorAttribute.cs
- ThousandthOfEmRealDoubles.cs
- RestClientProxyHandler.cs
- XslVisitor.cs
- ProvidersHelper.cs
- SqlConnectionPoolGroupProviderInfo.cs
- TextLine.cs
- SecurityRuntime.cs
- IfJoinedCondition.cs
- ContextMenuService.cs
- TryLoadRunnableWorkflowCommand.cs
- ListViewDataItem.cs
- HtmlWindow.cs
- ListViewItemSelectionChangedEvent.cs
- HtmlButton.cs
- UrlAuthorizationModule.cs
- localization.cs
- Menu.cs
- _SingleItemRequestCache.cs
- PostBackTrigger.cs
- EmbeddedObject.cs
- Misc.cs
- PaintEvent.cs
- AuthenticateEventArgs.cs
- SetterBase.cs
- WhitespaceRule.cs
- ViewStateAttachedPropertyFeature.cs
- ScaleTransform3D.cs
- LoadedEvent.cs
- Properties.cs
- HashRepartitionStream.cs
- ProcessProtocolHandler.cs
- Stylesheet.cs
- Int16Converter.cs
- FlowLayoutSettings.cs
- HtmlCalendarAdapter.cs
- Trace.cs
- HostingEnvironment.cs
- PkcsUtils.cs
- WindowsTooltip.cs
- TypeResolver.cs
- printdlgexmarshaler.cs
- AddressingVersion.cs
- HitTestDrawingContextWalker.cs
- BindUriHelper.cs
- AttributeCollection.cs
- DefaultMemberAttribute.cs
- ClientApiGenerator.cs
- CatalogZone.cs
- WebPartCatalogAddVerb.cs
- InternalPermissions.cs
- MediaTimeline.cs
- AncillaryOps.cs
- CodeIterationStatement.cs
- LinqDataSourceView.cs
- BamlVersionHeader.cs
- LogEntryHeaderDeserializer.cs
- OdbcHandle.cs
- DocumentViewerBase.cs
- InteropAutomationProvider.cs
- WebBrowser.cs
- WebPartEditorApplyVerb.cs
- MultiPageTextView.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- DataError.cs
- RevocationPoint.cs
- FastPropertyAccessor.cs
- ToolbarAUtomationPeer.cs
- DropDownButton.cs
- ExpressionNormalizer.cs
- Empty.cs
- AssemblyInfo.cs
- TemplateBaseAction.cs
- HttpClientCertificate.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- Style.cs
- WebPartsPersonalization.cs
- ExeContext.cs
- PropertyChangingEventArgs.cs
- WorkflowWebService.cs