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
- DataTable.cs
- VerificationException.cs
- HMACSHA512.cs
- EventManager.cs
- Nullable.cs
- XmlSerializationWriter.cs
- InternalUserCancelledException.cs
- ISAPIRuntime.cs
- DataAdapter.cs
- CheckBoxBaseAdapter.cs
- ListViewUpdateEventArgs.cs
- WebPartActionVerb.cs
- CheckBoxBaseAdapter.cs
- XmlValueConverter.cs
- wgx_exports.cs
- DataAdapter.cs
- XmlToDatasetMap.cs
- UrlEncodedParameterWriter.cs
- DbProviderManifest.cs
- WebPartCloseVerb.cs
- StrongNamePublicKeyBlob.cs
- XpsPackagingException.cs
- OciHandle.cs
- WebConfigurationFileMap.cs
- TdsParameterSetter.cs
- NullRuntimeConfig.cs
- ListViewItemMouseHoverEvent.cs
- ReaderWriterLock.cs
- SecureEnvironment.cs
- HandlerBase.cs
- Tablet.cs
- PackageRelationshipCollection.cs
- UrlPath.cs
- SmiRecordBuffer.cs
- ActionFrame.cs
- CodeGotoStatement.cs
- PtsHost.cs
- XmlSchemaDocumentation.cs
- ProcessInfo.cs
- WeakRefEnumerator.cs
- OleDbCommandBuilder.cs
- VersionedStreamOwner.cs
- Transform.cs
- processwaithandle.cs
- QueryOperationResponseOfT.cs
- SystemIcmpV4Statistics.cs
- DatePickerDateValidationErrorEventArgs.cs
- AnnotationAdorner.cs
- NamedPipeAppDomainProtocolHandler.cs
- AssemblyName.cs
- Invariant.cs
- CounterSample.cs
- CultureData.cs
- KnownBoxes.cs
- BrushValueSerializer.cs
- UriSection.cs
- Keywords.cs
- ResourceExpressionBuilder.cs
- ListView.cs
- Trace.cs
- FileLogRecordStream.cs
- PrivilegeNotHeldException.cs
- ThemeDirectoryCompiler.cs
- SpeechUI.cs
- StateItem.cs
- CLRBindingWorker.cs
- QueryOpeningEnumerator.cs
- CommentEmitter.cs
- ExtendedProtectionPolicy.cs
- XsltArgumentList.cs
- DependentList.cs
- ObjectConverter.cs
- TreeViewEvent.cs
- HttpDebugHandler.cs
- IChannel.cs
- Transaction.cs
- TextTreeText.cs
- InvalidComObjectException.cs
- XmlDataProvider.cs
- ResourceSet.cs
- DataGridColumnCollection.cs
- DiscoveryMessageSequenceGenerator.cs
- TypefaceCollection.cs
- HttpWrapper.cs
- MulticastOption.cs
- CompileLiteralTextParser.cs
- MergeFailedEvent.cs
- SimpleHandlerBuildProvider.cs
- _OverlappedAsyncResult.cs
- EditingCommands.cs
- TransactedReceiveData.cs
- XmlNodeList.cs
- BaseValidator.cs
- FrameworkObject.cs
- VirtualizedItemProviderWrapper.cs
- AlternateView.cs
- GuidelineCollection.cs
- Baml2006ReaderContext.cs
- InputBindingCollection.cs
- SqlPersonalizationProvider.cs