Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / RoleProviderPrincipal.cs / 2 / RoleProviderPrincipal.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.ServiceModel.Security
{
using System;
using System.Runtime.CompilerServices;
using System.ServiceModel;
using System.Security.Principal;
using System.ServiceModel.Security;
using System.Web.Security;
sealed class RoleProviderPrincipal : IPrincipal
{
static bool defaultRoleProviderSet = false;
static object defaultRoleProvider;
object roleProvider;
ServiceSecurityContext securityContext;
public RoleProviderPrincipal(object roleProvider, ServiceSecurityContext securityContext)
{
this.roleProvider = roleProvider;
this.securityContext = securityContext;
}
public IIdentity Identity
{
get { return this.securityContext.PrimaryIdentity; }
}
[MethodImpl(MethodImplOptions.NoInlining)]
public bool IsInRole(string role)
{
object roleProvider = this.roleProvider ?? GetRoleProvider();
RoleProvider rp = roleProvider as RoleProvider;
if ( rp != null)
{
return rp.IsUserInRole(this.securityContext.PrimaryIdentity.Name, role);
}
return false;
}
// This method used to be static and had this comment, made instance as part of AH fix [[....]] 8/2008
// Perf benefit: Roles.Enabled call is expensive due to CAS.
[MethodImpl(MethodImplOptions.NoInlining)]
object GetRoleProvider()
{
if (!defaultRoleProviderSet)
{
defaultRoleProvider = Roles.Enabled ? Roles.Provider : null;
defaultRoleProviderSet = true;
}
return defaultRoleProvider;
}
}
}
// 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
- SmtpReplyReader.cs
- WebControlToolBoxItem.cs
- SqlDataSourceEnumerator.cs
- WebReferenceOptions.cs
- DictionaryTraceRecord.cs
- VarRemapper.cs
- XmlSchemaGroup.cs
- InputScope.cs
- HtmlTableRowCollection.cs
- TagMapCollection.cs
- Header.cs
- ShimAsPublicXamlType.cs
- ConfigurationManagerInternalFactory.cs
- ListControl.cs
- WebDisplayNameAttribute.cs
- ThicknessConverter.cs
- WorkflowInspectionServices.cs
- RowType.cs
- HMACMD5.cs
- HTTP_SERVICE_CONFIG_URLACL_KEY.cs
- DataError.cs
- CursorInteropHelper.cs
- BamlRecordReader.cs
- CroppedBitmap.cs
- QilInvoke.cs
- Process.cs
- DataObject.cs
- SqlCommandSet.cs
- PeerCollaboration.cs
- ExtensionMethods.cs
- DataSysAttribute.cs
- TypeInitializationException.cs
- TypeHelper.cs
- _LazyAsyncResult.cs
- LinqDataSourceContextEventArgs.cs
- PropertyItemInternal.cs
- DispatcherEventArgs.cs
- PropertyPathWorker.cs
- Nodes.cs
- DiscreteKeyFrames.cs
- SQLDouble.cs
- NameValueConfigurationElement.cs
- WindowsFormsLinkLabel.cs
- UIElementParaClient.cs
- RangeValuePatternIdentifiers.cs
- ConnectionManagementSection.cs
- XmlNamespaceManager.cs
- XPathSelfQuery.cs
- XmlDataSourceView.cs
- DoubleAnimation.cs
- TextTreeExtractElementUndoUnit.cs
- BitmapEffect.cs
- HyperLinkStyle.cs
- QilReference.cs
- GregorianCalendarHelper.cs
- ObservableCollection.cs
- OutputCacheProfile.cs
- GeometryConverter.cs
- XPathNodeIterator.cs
- smtppermission.cs
- Rules.cs
- LongValidatorAttribute.cs
- FieldInfo.cs
- Single.cs
- DataGridViewCellConverter.cs
- ReadOnlyPropertyMetadata.cs
- QilXmlWriter.cs
- DbXmlEnabledProviderManifest.cs
- SingleResultAttribute.cs
- DirectoryObjectSecurity.cs
- EditingCoordinator.cs
- RequestSecurityTokenResponseCollection.cs
- SapiAttributeParser.cs
- XpsInterleavingPolicy.cs
- ProcessHost.cs
- ToolStripItemEventArgs.cs
- RankException.cs
- XmlSchemaImporter.cs
- ViewStateException.cs
- CacheMode.cs
- Geometry3D.cs
- SqlWorkflowInstanceStoreLock.cs
- DataTableMapping.cs
- BrowsableAttribute.cs
- PropertyConverter.cs
- DirectionalLight.cs
- IPEndPointCollection.cs
- ClientType.cs
- AssemblyCacheEntry.cs
- WebPartDisplayModeCollection.cs
- Not.cs
- Transform3DGroup.cs
- WindowsButton.cs
- ClientSideProviderDescription.cs
- Converter.cs
- StorageComplexTypeMapping.cs
- Int64AnimationBase.cs
- SafeNativeMethods.cs
- DebugView.cs
- IssuedTokenParametersElement.cs