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
- TraceRecord.cs
- TrackingValidationObjectDictionary.cs
- AppearanceEditorPart.cs
- SystemUnicastIPAddressInformation.cs
- DataFormats.cs
- UpdatePanelTriggerCollection.cs
- Int64KeyFrameCollection.cs
- StorageRoot.cs
- DesignDataSource.cs
- GroupBox.cs
- FilterableData.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- Behavior.cs
- SQLBinaryStorage.cs
- WebControlParameterProxy.cs
- TextHintingModeValidation.cs
- SelectionItemPatternIdentifiers.cs
- UInt32.cs
- UserNameSecurityTokenProvider.cs
- DataBoundControlHelper.cs
- SystemNetworkInterface.cs
- ValueTable.cs
- SecurityStateEncoder.cs
- Border.cs
- GroupQuery.cs
- BCryptHashAlgorithm.cs
- ConfigXmlComment.cs
- DataGridViewCellMouseEventArgs.cs
- TextRangeSerialization.cs
- SafeRightsManagementEnvironmentHandle.cs
- CroppedBitmap.cs
- IisTraceListener.cs
- Membership.cs
- NestedContainer.cs
- CodeDomDecompiler.cs
- SqlStatistics.cs
- TextBoxAutomationPeer.cs
- OutputScopeManager.cs
- ToolStripRenderEventArgs.cs
- RowsCopiedEventArgs.cs
- RefreshPropertiesAttribute.cs
- ThreadPool.cs
- SecUtil.cs
- PageContentAsyncResult.cs
- UrlParameterWriter.cs
- _HeaderInfoTable.cs
- PathFigureCollection.cs
- VirtualizingPanel.cs
- FlowNode.cs
- OracleInternalConnection.cs
- BitmapCodecInfoInternal.cs
- EntitySqlQueryCacheEntry.cs
- DrawingGroupDrawingContext.cs
- BamlBinaryWriter.cs
- QueryPageSettingsEventArgs.cs
- DataGridViewHitTestInfo.cs
- SQLBytesStorage.cs
- StylusLogic.cs
- AppDomainShutdownMonitor.cs
- RadialGradientBrush.cs
- ProvidePropertyAttribute.cs
- CancellationHandler.cs
- ContextMenu.cs
- LinqDataSourceStatusEventArgs.cs
- DataTemplateSelector.cs
- CfgParser.cs
- ThreadInterruptedException.cs
- ZipPackagePart.cs
- TableLayoutCellPaintEventArgs.cs
- DataGridViewCellStyleConverter.cs
- DataRowChangeEvent.cs
- UserControlCodeDomTreeGenerator.cs
- DataGridParentRows.cs
- DesignTimeVisibleAttribute.cs
- DynamicPropertyHolder.cs
- BitmapEffectGeneralTransform.cs
- PrintController.cs
- SqlMethodCallConverter.cs
- StringFormat.cs
- ResourceDisplayNameAttribute.cs
- TreeViewEvent.cs
- Pkcs7Signer.cs
- FormsAuthenticationTicket.cs
- ImageCollectionEditor.cs
- TiffBitmapDecoder.cs
- PrimaryKeyTypeConverter.cs
- VectorCollectionConverter.cs
- PanelDesigner.cs
- NativeMethodsOther.cs
- TextEditorCharacters.cs
- RepeaterItemEventArgs.cs
- EventManager.cs
- DESCryptoServiceProvider.cs
- Paragraph.cs
- XpsFixedDocumentReaderWriter.cs
- FaultCode.cs
- AlphaSortedEnumConverter.cs
- ProfileParameter.cs
- XamlGridLengthSerializer.cs
- XmlAnyAttributeAttribute.cs