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
- ResolveCriteriaCD1.cs
- XmlSchemaChoice.cs
- ElementsClipboardData.cs
- COM2PropertyBuilderUITypeEditor.cs
- SchemaNames.cs
- AnnotationAuthorChangedEventArgs.cs
- DragDrop.cs
- StreamUpdate.cs
- TabletCollection.cs
- ContentPresenter.cs
- AdRotatorDesigner.cs
- WizardForm.cs
- ClientBuildManager.cs
- DateTimeOffsetAdapter.cs
- RawStylusInputCustomData.cs
- MeasureItemEvent.cs
- HtmlInputCheckBox.cs
- DesignTimeParseData.cs
- WebControlAdapter.cs
- ServiceParser.cs
- WebBrowser.cs
- MemberDomainMap.cs
- WebPartMenu.cs
- OdbcParameterCollection.cs
- Serializer.cs
- GridSplitter.cs
- FormatterServices.cs
- Rules.cs
- SerialReceived.cs
- ArrayTypeMismatchException.cs
- ForeignConstraint.cs
- diagnosticsswitches.cs
- Helpers.cs
- XPathExpr.cs
- BaseInfoTable.cs
- ExpandCollapseProviderWrapper.cs
- UserControlCodeDomTreeGenerator.cs
- XmlNodeList.cs
- ServiceCredentials.cs
- WeakReferenceEnumerator.cs
- SR.cs
- EtwTrace.cs
- DataSourceCache.cs
- ClassDataContract.cs
- PatternMatcher.cs
- XmlSchemaSimpleType.cs
- ClientTarget.cs
- DictionaryTraceRecord.cs
- WorkflowMarkupSerializer.cs
- DataListItemCollection.cs
- PenThreadPool.cs
- MethodCallTranslator.cs
- FactoryGenerator.cs
- BuildResult.cs
- ControlValuePropertyAttribute.cs
- DetailsViewDeleteEventArgs.cs
- ToolboxComponentsCreatingEventArgs.cs
- StorageMappingFragment.cs
- FlowDocumentScrollViewer.cs
- FixedSOMPage.cs
- CheckBox.cs
- ColorKeyFrameCollection.cs
- GeneralTransform3DGroup.cs
- SQLDateTimeStorage.cs
- SqlSupersetValidator.cs
- Parser.cs
- XamlDebuggerXmlReader.cs
- FlowDocumentView.cs
- FormsAuthenticationTicket.cs
- DataGridViewLinkColumn.cs
- FileDialog.cs
- EventProxy.cs
- EventSource.cs
- ApplicationSecurityManager.cs
- FileDetails.cs
- Buffer.cs
- Button.cs
- Roles.cs
- WebPartDisplayModeCollection.cs
- LineServicesRun.cs
- FixedSOMGroup.cs
- PngBitmapDecoder.cs
- SqlLiftIndependentRowExpressions.cs
- sitestring.cs
- TraceUtility.cs
- DataGridViewAutoSizeModeEventArgs.cs
- Attribute.cs
- JulianCalendar.cs
- FloaterParaClient.cs
- XmlNodeWriter.cs
- CodeMethodInvokeExpression.cs
- CollectionMarkupSerializer.cs
- ChildDocumentBlock.cs
- Point3DAnimation.cs
- XmlBinaryWriterSession.cs
- InheritanceAttribute.cs
- OutputCacheSettings.cs
- ScrollPatternIdentifiers.cs
- DataGridViewComboBoxEditingControl.cs
- DesignTimeParseData.cs