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
- ManagementQuery.cs
- FontInfo.cs
- SafeRightsManagementPubHandle.cs
- WebResponse.cs
- ObjectStorage.cs
- TimeoutValidationAttribute.cs
- TrustManagerPromptUI.cs
- XmlEntityReference.cs
- UrlAuthFailureHandler.cs
- UrlPath.cs
- SettingsPropertyWrongTypeException.cs
- CultureInfoConverter.cs
- RestHandlerFactory.cs
- HasCopySemanticsAttribute.cs
- VisualBrush.cs
- CompressEmulationStream.cs
- OledbConnectionStringbuilder.cs
- ExtensionDataObject.cs
- SqlFacetAttribute.cs
- Internal.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- ResourceSetExpression.cs
- CompiledRegexRunnerFactory.cs
- HttpPostedFileWrapper.cs
- Timer.cs
- WsdlInspector.cs
- EventWaitHandleSecurity.cs
- infer.cs
- CodeGenerator.cs
- ConfigurationStrings.cs
- _LazyAsyncResult.cs
- WebCategoryAttribute.cs
- TraceEventCache.cs
- CallbackValidatorAttribute.cs
- ValidatorCollection.cs
- CryptoStream.cs
- iisPickupDirectory.cs
- PathParser.cs
- CategoryEditor.cs
- ReferentialConstraint.cs
- ColorPalette.cs
- EventMap.cs
- Lease.cs
- NamedPipeTransportElement.cs
- TimeIntervalCollection.cs
- PassportPrincipal.cs
- StorageSetMapping.cs
- PartitionerStatic.cs
- ReceiveContextCollection.cs
- ToolStripMenuItem.cs
- XmlHierarchyData.cs
- DataGridViewElement.cs
- SrgsGrammarCompiler.cs
- QueryOperator.cs
- WindowsUserNameCachingSecurityTokenAuthenticator.cs
- TextTreeDeleteContentUndoUnit.cs
- XmlReader.cs
- ScrollChrome.cs
- StylusTip.cs
- CommonObjectSecurity.cs
- ProfilePropertySettingsCollection.cs
- CharacterHit.cs
- GenericAuthenticationEventArgs.cs
- AdRotatorDesigner.cs
- MetadataStore.cs
- HtmlElementErrorEventArgs.cs
- SecurityDescriptor.cs
- StackBuilderSink.cs
- XmlSchemaIdentityConstraint.cs
- Soap12FormatExtensions.cs
- XmlNamedNodeMap.cs
- StyleXamlTreeBuilder.cs
- ToolStripDropDownItem.cs
- BaseConfigurationRecord.cs
- ILGenerator.cs
- DataListComponentEditor.cs
- ConsoleTraceListener.cs
- LookupNode.cs
- BrowserCapabilitiesFactory.cs
- KeyFrames.cs
- AttachmentCollection.cs
- InstanceNameConverter.cs
- MD5HashHelper.cs
- OracleDateTime.cs
- LayoutManager.cs
- WebSysDefaultValueAttribute.cs
- ResolveMatches11.cs
- ScriptResourceInfo.cs
- LinkTarget.cs
- PartManifestEntry.cs
- EmptyControlCollection.cs
- UriParserTemplates.cs
- SystemWebSectionGroup.cs
- ContentElement.cs
- CodeParameterDeclarationExpression.cs
- categoryentry.cs
- StorageTypeMapping.cs
- FactoryRecord.cs
- VariableAction.cs
- DataRow.cs