Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / Role / DirectoryGroupQuery.cs / 1305376 / DirectoryGroupQuery.cs
#region Using directives using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Net; using System.DirectoryServices; #endregion namespace System.Workflow.Activities { [Serializable] sealed internal class DirectoryGroupQuery : IDirectoryOperation { public DirectoryGroupQuery() { } public void GetResult(DirectoryEntry rootEntry, DirectoryEntry currentEntry, Listresponse) { if (response == null) throw new ArgumentNullException("response"); Stack entries = new Stack (); entries.Push(currentEntry); while (entries.Count != 0) { DirectoryEntry entry = entries.Pop(); bool isGroup = false; if (Contains(entry.Properties.PropertyNames,"objectClass")) { foreach (String value in entry.Properties["objectClass"]) { if (String.Compare(value, ActiveDirectoryRoleFactory.Configuration.Group, StringComparison.Ordinal) == 0) { isGroup = true; break; } } if (isGroup) { if (Contains(entry.Properties.PropertyNames, ActiveDirectoryRoleFactory.Configuration.Member)) { foreach (String propValue in entry.Properties[ActiveDirectoryRoleFactory.Configuration.Member]) { entries.Push(new DirectoryEntry(BuildUri(propValue))); } } } else { response.Add(entry); } } } } private static bool Contains(ICollection propertyNames, String testPropertyName) { foreach (String propertyName in propertyNames) { if (String.Compare(propertyName, testPropertyName, StringComparison.Ordinal) == 0) return true; } return false; } private static String BuildUri(String propValue) { StringBuilder sb = new StringBuilder(); sb.Append("LDAP://"); for (int i = 0; i < propValue.Length; ++i) { if (propValue[i] == '/') sb.Append("\\/"); else sb.Append(propValue[i]); } return sb.ToString(); } } } // 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
- RegexStringValidator.cs
- SynchronizationScope.cs
- MailMessageEventArgs.cs
- Brush.cs
- PocoPropertyAccessorStrategy.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- rsa.cs
- StoryFragments.cs
- MethodBody.cs
- DataGridViewTopRowAccessibleObject.cs
- JavaScriptObjectDeserializer.cs
- PopupRoot.cs
- SchemaImporterExtensionsSection.cs
- CopyOnWriteList.cs
- SecurityElement.cs
- EntitySet.cs
- RestClientProxyHandler.cs
- LessThan.cs
- ImageUrlEditor.cs
- EventData.cs
- GlyphingCache.cs
- InkCanvasSelectionAdorner.cs
- SamlAttribute.cs
- Cursors.cs
- ResourceReferenceExpression.cs
- DebugView.cs
- StringBuilder.cs
- InstanceDescriptor.cs
- CounterCreationData.cs
- SecurityTokenProvider.cs
- RecordBuilder.cs
- XmlSchemaSubstitutionGroup.cs
- XmlSerializer.cs
- WindowsTokenRoleProvider.cs
- CacheModeConverter.cs
- XamlReader.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- PrivateFontCollection.cs
- ChineseLunisolarCalendar.cs
- CacheMemory.cs
- _LoggingObject.cs
- DesigntimeLicenseContext.cs
- _Win32.cs
- EmbeddedMailObjectCollectionEditor.cs
- _NestedSingleAsyncResult.cs
- FacetDescription.cs
- DataBindingHandlerAttribute.cs
- HttpRequestTraceRecord.cs
- Attributes.cs
- TextSelectionProcessor.cs
- SymbolPair.cs
- Column.cs
- MsmqInputMessage.cs
- FeatureSupport.cs
- SynchronizationContext.cs
- PieceNameHelper.cs
- LogRecordSequence.cs
- TreeIterators.cs
- XmlSchemaAnyAttribute.cs
- BaseTreeIterator.cs
- CqlQuery.cs
- VisualBrush.cs
- DeferredReference.cs
- RawStylusSystemGestureInputReport.cs
- CodeSubDirectory.cs
- SqlTransaction.cs
- WinOEToolBoxItem.cs
- DispatcherProcessingDisabled.cs
- ScriptReferenceBase.cs
- PenContexts.cs
- DataBoundLiteralControl.cs
- IRCollection.cs
- Pair.cs
- DataReceivedEventArgs.cs
- QuaternionIndependentAnimationStorage.cs
- ViewGenResults.cs
- CFStream.cs
- SwitchLevelAttribute.cs
- TableHeaderCell.cs
- ObjectParameter.cs
- Normalization.cs
- IPipelineRuntime.cs
- HitTestParameters3D.cs
- FunctionMappingTranslator.cs
- SiteMapNodeItemEventArgs.cs
- BuildProviderAppliesToAttribute.cs
- _ProxyChain.cs
- ViewBox.cs
- EmptyStringExpandableObjectConverter.cs
- StaticFileHandler.cs
- GroupBoxAutomationPeer.cs
- UDPClient.cs
- ResXFileRef.cs
- BindableTemplateBuilder.cs
- ScaleTransform3D.cs
- DiagnosticsConfiguration.cs
- CharacterString.cs
- TextParaClient.cs
- DataGridCell.cs
- SelectionProcessor.cs