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
- OleDbEnumerator.cs
- CodeRegionDirective.cs
- PieceDirectory.cs
- MaskDescriptor.cs
- WebMessageFormatHelper.cs
- ToolStripOverflowButton.cs
- BlurBitmapEffect.cs
- XmlSchemaRedefine.cs
- CompositeDataBoundControl.cs
- GridItemPattern.cs
- GeometryCombineModeValidation.cs
- MessageHeaderDescription.cs
- OracleColumn.cs
- DocumentSchemaValidator.cs
- SchemaObjectWriter.cs
- ResourceContainer.cs
- BaseComponentEditor.cs
- thaishape.cs
- VScrollBar.cs
- DmlSqlGenerator.cs
- HttpRequestBase.cs
- UIElementIsland.cs
- DocobjHost.cs
- HtmlString.cs
- MasterPageParser.cs
- ObjectViewListener.cs
- DrawingContextDrawingContextWalker.cs
- SelfIssuedSamlTokenFactory.cs
- EntityDataSourceSelectedEventArgs.cs
- RegistryExceptionHelper.cs
- UnionExpr.cs
- IgnoreSection.cs
- AtomServiceDocumentSerializer.cs
- DataGridViewColumnConverter.cs
- CryptoApi.cs
- OutOfProcStateClientManager.cs
- CodeTypeConstructor.cs
- MultiPageTextView.cs
- BrowserCapabilitiesCompiler.cs
- LoadedOrUnloadedOperation.cs
- StringFreezingAttribute.cs
- ListViewUpdatedEventArgs.cs
- TemplatedMailWebEventProvider.cs
- Random.cs
- FileDialogCustomPlace.cs
- Image.cs
- BaseProcessor.cs
- FrugalMap.cs
- SafeCryptoHandles.cs
- AttachmentCollection.cs
- EntityTransaction.cs
- XmlSignatureManifest.cs
- Stack.cs
- ResourceManager.cs
- ConfigXmlWhitespace.cs
- BitmapEffectRenderDataResource.cs
- TableCell.cs
- ParseNumbers.cs
- ByteStack.cs
- HtmlSelectionListAdapter.cs
- ColumnTypeConverter.cs
- GeneralTransform2DTo3DTo2D.cs
- SynchronizedDisposablePool.cs
- XsltConvert.cs
- DocumentEventArgs.cs
- HtmlTernaryTree.cs
- ClientSideQueueItem.cs
- ControlAdapter.cs
- QuaternionIndependentAnimationStorage.cs
- PositiveTimeSpanValidator.cs
- ArraySegment.cs
- DelimitedListTraceListener.cs
- _TransmitFileOverlappedAsyncResult.cs
- RunWorkerCompletedEventArgs.cs
- SynchronizationLockException.cs
- HttpStreamXmlDictionaryWriter.cs
- CommandField.cs
- WinEventQueueItem.cs
- StylusPointProperty.cs
- OdbcConnectionPoolProviderInfo.cs
- ObjectListTitleAttribute.cs
- DataGridViewHitTestInfo.cs
- MachineKeySection.cs
- BinHexEncoder.cs
- DataGridViewSelectedCellCollection.cs
- TdsParameterSetter.cs
- DataTableCollection.cs
- ContextStack.cs
- ChannelEndpointElementCollection.cs
- Table.cs
- EventWaitHandle.cs
- EntityTypeBase.cs
- UnSafeCharBuffer.cs
- SapiAttributeParser.cs
- DockingAttribute.cs
- SafeProcessHandle.cs
- WebUtility.cs
- PolicyFactory.cs
- HostingEnvironmentSection.cs
- CompilerParameters.cs