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
- PenCursorManager.cs
- OdbcDataAdapter.cs
- HostSecurityManager.cs
- MethodMessage.cs
- Visual3DCollection.cs
- PkcsUtils.cs
- UTF32Encoding.cs
- TextSelectionHighlightLayer.cs
- PageOrientation.cs
- VirtualDirectoryMappingCollection.cs
- ConfigXmlDocument.cs
- ChameleonKey.cs
- TypeUtil.cs
- Maps.cs
- CompositeFontFamily.cs
- TransformPatternIdentifiers.cs
- IImplicitResourceProvider.cs
- CompilerTypeWithParams.cs
- LifetimeServices.cs
- GuidTagList.cs
- DataContractSet.cs
- TextProviderWrapper.cs
- ChtmlTextBoxAdapter.cs
- CellTreeNode.cs
- NameSpaceExtractor.cs
- ExpressionBuilder.cs
- LocatorGroup.cs
- DropTarget.cs
- StreamGeometry.cs
- RequestCacheValidator.cs
- ComponentSerializationService.cs
- HtmlInputText.cs
- QilInvokeEarlyBound.cs
- LabelEditEvent.cs
- SqlErrorCollection.cs
- PrintDialogDesigner.cs
- PtsContext.cs
- Scheduling.cs
- ResourceWriter.cs
- SqlBuilder.cs
- Asn1IntegerConverter.cs
- InputDevice.cs
- SoapHeader.cs
- QilLoop.cs
- TreeBuilder.cs
- ContentOperations.cs
- ParenthesizePropertyNameAttribute.cs
- WebHostScriptMappingsInstallComponent.cs
- HtmlDocument.cs
- PropertyNames.cs
- BmpBitmapEncoder.cs
- SaveFileDialogDesigner.cs
- BaseResourcesBuildProvider.cs
- XmlSortKey.cs
- DefaultProxySection.cs
- MemoryResponseElement.cs
- XmlMembersMapping.cs
- ContextProperty.cs
- hwndwrapper.cs
- InternalUserCancelledException.cs
- KeyGesture.cs
- SmiEventSink.cs
- TextTreeInsertElementUndoUnit.cs
- mediaeventargs.cs
- XamlSerializerUtil.cs
- DockPatternIdentifiers.cs
- GridViewRowEventArgs.cs
- EventNotify.cs
- ExtendedPropertiesHandler.cs
- ConfigurationSectionHelper.cs
- ManagedFilter.cs
- PermissionSetTriple.cs
- OletxCommittableTransaction.cs
- DataRecordInternal.cs
- XPathNavigatorKeyComparer.cs
- UnsafeNativeMethods.cs
- ObjectReferenceStack.cs
- DataGridViewRowPostPaintEventArgs.cs
- NetworkCredential.cs
- FrameworkContentElement.cs
- StandardTransformFactory.cs
- Evaluator.cs
- RowUpdatingEventArgs.cs
- OracleParameter.cs
- SynchronizationScope.cs
- TreeIterators.cs
- RsaKeyGen.cs
- UrlMappingsModule.cs
- HostedBindingBehavior.cs
- GroupBox.cs
- XmlCharType.cs
- UnicodeEncoding.cs
- Ops.cs
- TextRunCacheImp.cs
- Dynamic.cs
- Constraint.cs
- ObjectNavigationPropertyMapping.cs
- ManifestResourceInfo.cs
- HijriCalendar.cs
- SHA384Managed.cs