Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- DataGridViewCellParsingEventArgs.cs
- WebConfigurationHostFileChange.cs
- Panel.cs
- TailCallAnalyzer.cs
- WinFormsSpinner.cs
- CompressedStack.cs
- PolyLineSegment.cs
- AggregatePushdown.cs
- DesignSurfaceEvent.cs
- SimpleType.cs
- StructuralCache.cs
- TemplateContentLoader.cs
- XPathDocument.cs
- GenericAuthenticationEventArgs.cs
- InfoCardArgumentException.cs
- StringBuilder.cs
- documentsequencetextview.cs
- WebPartChrome.cs
- CodeLabeledStatement.cs
- RootProfilePropertySettingsCollection.cs
- CompatibleComparer.cs
- BitArray.cs
- MenuItemAutomationPeer.cs
- OdbcCommandBuilder.cs
- ExplicitDiscriminatorMap.cs
- RichTextBoxConstants.cs
- _SslState.cs
- CollectionChangeEventArgs.cs
- safelink.cs
- MDIControlStrip.cs
- Mutex.cs
- WebConfigurationHostFileChange.cs
- DrawTreeNodeEventArgs.cs
- PolygonHotSpot.cs
- UnmanagedMemoryStreamWrapper.cs
- VisualTreeHelper.cs
- _PooledStream.cs
- ObjectManager.cs
- AxisAngleRotation3D.cs
- LinearQuaternionKeyFrame.cs
- SuppressMergeCheckAttribute.cs
- CreateUserErrorEventArgs.cs
- BaseCodeDomTreeGenerator.cs
- SelectionRange.cs
- ModuleConfigurationInfo.cs
- ImageBrush.cs
- ModelFunctionTypeElement.cs
- odbcmetadatacollectionnames.cs
- DrawingVisual.cs
- ScalarOps.cs
- FileSystemInfo.cs
- XmlSchemaIdentityConstraint.cs
- WebZone.cs
- TextBounds.cs
- TabItemWrapperAutomationPeer.cs
- NameValueSectionHandler.cs
- ActivityInterfaces.cs
- SingleResultAttribute.cs
- SweepDirectionValidation.cs
- UpDownEvent.cs
- CodeIdentifiers.cs
- SamlAudienceRestrictionCondition.cs
- LinqDataSourceSelectEventArgs.cs
- SimpleExpression.cs
- AttachInfo.cs
- SecurityHelper.cs
- DashStyle.cs
- KeyNotFoundException.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- Mapping.cs
- HtmlHistory.cs
- Command.cs
- SqlDataReader.cs
- processwaithandle.cs
- LinqDataSourceDisposeEventArgs.cs
- XamlToRtfWriter.cs
- CookieHandler.cs
- InkCollectionBehavior.cs
- DocumentCollection.cs
- AvTraceFormat.cs
- SqlConnection.cs
- ObjectDataSourceEventArgs.cs
- RadioButtonFlatAdapter.cs
- PixelFormatConverter.cs
- PowerModeChangedEventArgs.cs
- FileUtil.cs
- Package.cs
- RuleSettingsCollection.cs
- RuntimeConfigurationRecord.cs
- DataGridColumnCollection.cs
- TemplatePartAttribute.cs
- HttpBrowserCapabilitiesWrapper.cs
- TriggerBase.cs
- NameHandler.cs
- ResolveNameEventArgs.cs
- SystemMulticastIPAddressInformation.cs
- ValidationError.cs
- SolidBrush.cs
- ParagraphResult.cs
- PerfCounters.cs