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, List response)
{
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
- DetailsViewCommandEventArgs.cs
- InternalBufferManager.cs
- BuildDependencySet.cs
- SHA512Managed.cs
- ParsedAttributeCollection.cs
- ModulesEntry.cs
- PartialCachingControl.cs
- BehaviorEditorPart.cs
- StringUtil.cs
- SqlGenericUtil.cs
- WizardForm.cs
- KeyNotFoundException.cs
- DefinitionUpdate.cs
- ArraySortHelper.cs
- XamlInt32CollectionSerializer.cs
- StorageInfo.cs
- ToolStripSettings.cs
- ToolStripDropDown.cs
- XmlILOptimizerVisitor.cs
- OleDbEnumerator.cs
- XmlAttributes.cs
- DataRowView.cs
- HtmlFormWrapper.cs
- MultiBindingExpression.cs
- UIElementPropertyUndoUnit.cs
- ReadOnlyHierarchicalDataSourceView.cs
- lengthconverter.cs
- Control.cs
- AccessibleObject.cs
- SectionXmlInfo.cs
- Tuple.cs
- ProvideValueServiceProvider.cs
- RowType.cs
- TableStyle.cs
- XmlCompatibilityReader.cs
- SequenceRangeCollection.cs
- DiscoveryClient.cs
- IntegerFacetDescriptionElement.cs
- SpellerInterop.cs
- XmlSchemaValidationException.cs
- HtmlInputImage.cs
- DataRow.cs
- ComPlusDiagnosticTraceRecords.cs
- ProcessModuleCollection.cs
- AssemblyResourceLoader.cs
- CngProperty.cs
- TransactionScope.cs
- InfiniteIntConverter.cs
- HtmlGenericControl.cs
- DropShadowEffect.cs
- FontCollection.cs
- StandardToolWindows.cs
- DeviceSpecific.cs
- DBParameter.cs
- OneOfElement.cs
- Vector3DAnimationBase.cs
- ContainerUtilities.cs
- PageCache.cs
- PolicyStatement.cs
- RepeaterItemEventArgs.cs
- TdsParserStaticMethods.cs
- StateMachineTimers.cs
- RowToParametersTransformer.cs
- ServerIdentity.cs
- XmlCharacterData.cs
- HostVisual.cs
- WorkflowTransactionService.cs
- DataErrorValidationRule.cs
- Rect3DConverter.cs
- MaterialCollection.cs
- EdgeModeValidation.cs
- PropertyEmitterBase.cs
- ApplicationBuildProvider.cs
- ToolStripItemClickedEventArgs.cs
- EntityException.cs
- FunctionDefinition.cs
- HatchBrush.cs
- DataGridViewImageColumn.cs
- UserControlParser.cs
- AutomationPropertyChangedEventArgs.cs
- InvalidComObjectException.cs
- _BufferOffsetSize.cs
- FlowSwitchDesigner.xaml.cs
- ThrowHelper.cs
- ObjectStateEntry.cs
- PropertyItem.cs
- SqlUserDefinedTypeAttribute.cs
- Control.cs
- TdsParserSafeHandles.cs
- _ListenerResponseStream.cs
- NameScope.cs
- LabelAutomationPeer.cs
- KeyConverter.cs
- NavigationWindow.cs
- CharacterMetricsDictionary.cs
- DataGridViewRow.cs
- SqlBuffer.cs
- MaskedTextProvider.cs
- ConstraintCollection.cs
- ControlPropertyNameConverter.cs