Code:
/ 4.0 / 4.0 / 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. #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
- ParameterExpression.cs
- CultureTableRecord.cs
- BindingMemberInfo.cs
- TimelineCollection.cs
- MenuAutomationPeer.cs
- RemotingServices.cs
- CompareValidator.cs
- MetadataArtifactLoaderCompositeFile.cs
- ValueUnavailableException.cs
- Repeater.cs
- TypeSystemHelpers.cs
- LinkButton.cs
- UpDownBaseDesigner.cs
- UnitySerializationHolder.cs
- GridViewUpdateEventArgs.cs
- FormatConvertedBitmap.cs
- TreeNodeBindingCollection.cs
- DbDataReader.cs
- pingexception.cs
- EntityFrameworkVersions.cs
- DataGridViewImageColumn.cs
- ExpressionEditorSheet.cs
- RawStylusInputCustomData.cs
- FontFaceLayoutInfo.cs
- TextViewSelectionProcessor.cs
- HostingEnvironmentSection.cs
- Stack.cs
- UICuesEvent.cs
- GridItemPattern.cs
- ContainerControl.cs
- ExtendedTransformFactory.cs
- DataServiceHost.cs
- PageParserFilter.cs
- CompletionProxy.cs
- ControlBindingsConverter.cs
- QilIterator.cs
- SafePipeHandle.cs
- HierarchicalDataSourceControl.cs
- FileDialogCustomPlaces.cs
- TrackingQuery.cs
- Context.cs
- PolicyUnit.cs
- WindowsSolidBrush.cs
- CounterSample.cs
- DataSourceIDConverter.cs
- BinaryUtilClasses.cs
- AttachedProperty.cs
- Calendar.cs
- MediaEntryAttribute.cs
- WindowsBrush.cs
- WebPartDescriptionCollection.cs
- SchemaReference.cs
- ChangeConflicts.cs
- TextContainer.cs
- Timeline.cs
- MatrixTransform.cs
- OracleCommand.cs
- ParserContext.cs
- autovalidator.cs
- AssemblyAssociatedContentFileAttribute.cs
- NamedPermissionSet.cs
- ScriptModule.cs
- Classification.cs
- ProtectedConfiguration.cs
- CreateUserWizardStep.cs
- ConfigXmlAttribute.cs
- FileNameEditor.cs
- Enum.cs
- PropertiesTab.cs
- SortQuery.cs
- Rule.cs
- Hyperlink.cs
- DbProviderFactories.cs
- CellConstant.cs
- ThreadNeutralSemaphore.cs
- SizeConverter.cs
- Model3DCollection.cs
- BulletedListEventArgs.cs
- LoadItemsEventArgs.cs
- QuaternionAnimation.cs
- AuthenticationSection.cs
- wgx_commands.cs
- nulltextnavigator.cs
- WCFBuildProvider.cs
- ResourceSetExpression.cs
- EntityDescriptor.cs
- FollowerQueueCreator.cs
- ConfigurationConverterBase.cs
- SpeechRecognitionEngine.cs
- IdentityNotMappedException.cs
- FixedNode.cs
- CDSsyncETWBCLProvider.cs
- SqlHelper.cs
- SqlMethodCallConverter.cs
- SqlLiftIndependentRowExpressions.cs
- DocumentViewer.cs
- MatrixTransform.cs
- FusionWrap.cs
- TypeDependencyAttribute.cs
- WaitHandleCannotBeOpenedException.cs