Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / Role / ADRoleFactory.cs / 1305376 / ADRoleFactory.cs
#region Using directives using System; using System.Collections.Generic; using System.Text; using System.DirectoryServices; using System.Security.Principal; using System.Configuration; using System.Workflow.Runtime.Configuration; using System.Workflow.Activities.Configuration; #endregion namespace System.Workflow.Activities { public static class ActiveDirectoryRoleFactory { private static DirectoryGroupQuery s_directoryGroupQuery = new DirectoryGroupQuery(); private static String s_configurationSectionName = "System.Workflow.Runtime.Hosting.ADRoleFactory"; private static ActiveDirectoryRoleFactoryConfiguration s_configuration; private static DirectoryEntry s_rootEntry; static ActiveDirectoryRoleFactory() { s_configuration = (ActiveDirectoryRoleFactoryConfiguration)ConfigurationManager.GetSection(s_configurationSectionName); if (s_configuration == null) s_configuration = new ActiveDirectoryRoleFactoryConfiguration(); } public static ActiveDirectoryRole CreateFromAlias(String alias) { if (alias == null) throw new ArgumentNullException("alias"); ActiveDirectoryRole role = new ActiveDirectoryRole(GetRootEntry(), new DirectoryRootQuery("sAMAccountName", alias, DirectoryQueryOperation.Equal)); role.Operations.Add(s_directoryGroupQuery); ValidateRole(role); return role; } public static ActiveDirectoryRole CreateFromSecurityIdentifier(SecurityIdentifier sid) { if (sid == null) throw new ArgumentNullException("sid"); ActiveDirectoryRole role = new ActiveDirectoryRole(GetRootEntry(), new DirectoryRootQuery("objectSID", sid.ToString(), DirectoryQueryOperation.Equal)); role.Operations.Add(s_directoryGroupQuery); ValidateRole(role); return role; } public static ActiveDirectoryRole CreateFromEmailAddress(String emailAddress) { if (emailAddress == null) throw new ArgumentNullException("emailAddress"); ActiveDirectoryRole role = new ActiveDirectoryRole(GetRootEntry(), new DirectoryRootQuery("mail", emailAddress, DirectoryQueryOperation.Equal)); role.Operations.Add(s_directoryGroupQuery); ValidateRole(role); return role; } private static DirectoryEntry GetRootEntry() { if (s_rootEntry == null) { if (s_configuration == null || s_configuration.RootPath == null || s_configuration.RootPath.Length == 0) { s_rootEntry = new DirectoryEntry(); } else { s_rootEntry = new DirectoryEntry(s_configuration.RootPath); } } return s_rootEntry; } public static ActiveDirectoryRoleFactoryConfiguration Configuration { get { return s_configuration; } } private static void ValidateRole(ActiveDirectoryRole adRole) { if (adRole.GetEntries().Count == 0) throw new ArgumentException(SR.GetString(SR.Error_NoMatchingActiveDirectoryEntry)); } } } // 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
- CodeDomSerializerBase.cs
- CmsInterop.cs
- XmlNamespaceMapping.cs
- ControlCollection.cs
- GPRECTF.cs
- DesignTimeVisibleAttribute.cs
- MetabaseServerConfig.cs
- HttpListenerRequest.cs
- TypeGeneratedEventArgs.cs
- FormViewInsertedEventArgs.cs
- GroupPartitionExpr.cs
- BlurBitmapEffect.cs
- AvTraceFormat.cs
- HyperLink.cs
- VectorKeyFrameCollection.cs
- VerticalAlignConverter.cs
- InlineObject.cs
- DbConnectionHelper.cs
- RelatedImageListAttribute.cs
- CrossContextChannel.cs
- WizardDesigner.cs
- XmlSchemaAppInfo.cs
- FixedPage.cs
- SafeProcessHandle.cs
- RemotingService.cs
- XmlIgnoreAttribute.cs
- COMException.cs
- XamlBrushSerializer.cs
- BlobPersonalizationState.cs
- HealthMonitoringSectionHelper.cs
- PeerApplication.cs
- ConsoleCancelEventArgs.cs
- DockPanel.cs
- CommandHelper.cs
- RuntimeCompatibilityAttribute.cs
- FrameworkContextData.cs
- SecureUICommand.cs
- FlowLayoutPanel.cs
- MaskDesignerDialog.cs
- QualifiedCellIdBoolean.cs
- BaseDataBoundControl.cs
- CodeNamespaceImportCollection.cs
- BoundsDrawingContextWalker.cs
- Dynamic.cs
- SQlBooleanStorage.cs
- InstancePersistence.cs
- ClockGroup.cs
- ProfileSettings.cs
- WebServiceEndpoint.cs
- KeyValuePair.cs
- CompilationUnit.cs
- IImplicitResourceProvider.cs
- SupportingTokenDuplexChannel.cs
- DataGridViewIntLinkedList.cs
- BaseDataBoundControl.cs
- XmlSchemaIdentityConstraint.cs
- AddressHeader.cs
- SiteMapProvider.cs
- DiscreteKeyFrames.cs
- SnapLine.cs
- DataSourceCache.cs
- AddInControllerImpl.cs
- XmlHierarchyData.cs
- CodeTypeOfExpression.cs
- DataGridViewCellConverter.cs
- XmlTextReaderImpl.cs
- OwnerDrawPropertyBag.cs
- CodeTypeParameterCollection.cs
- ContainerControl.cs
- XmlSerializationGeneratedCode.cs
- CapabilitiesAssignment.cs
- HtmlMeta.cs
- DetailsViewModeEventArgs.cs
- CellRelation.cs
- EmissiveMaterial.cs
- DllHostedComPlusServiceHost.cs
- SimplePropertyEntry.cs
- ColorConverter.cs
- ObjectFullSpanRewriter.cs
- AssertValidation.cs
- ContextDataSourceContextData.cs
- ForeignConstraint.cs
- FontFamily.cs
- EntityDataSourceDataSelection.cs
- DependencyProperty.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- HttpStreamMessage.cs
- ComponentChangedEvent.cs
- CollectionViewGroupInternal.cs
- DataGridViewAddColumnDialog.cs
- AppSecurityManager.cs
- DirectionalLight.cs
- FamilyCollection.cs
- TextSyndicationContentKindHelper.cs
- SafeMemoryMappedViewHandle.cs
- OleDbParameterCollection.cs
- SqlClientMetaDataCollectionNames.cs
- UInt16Converter.cs
- OracleBinary.cs
- BamlRecordHelper.cs