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
- CodeTypeDeclarationCollection.cs
- SrgsRuleRef.cs
- HtmlShimManager.cs
- XmlILCommand.cs
- SoapSchemaMember.cs
- XmlEntityReference.cs
- Bitmap.cs
- CodeDomSerializationProvider.cs
- DrawingImage.cs
- DrawingCollection.cs
- NumberFormatInfo.cs
- DbFunctionCommandTree.cs
- WindowsListViewItemCheckBox.cs
- MarkupExtensionReturnTypeAttribute.cs
- MdImport.cs
- WSFederationHttpSecurityMode.cs
- XhtmlBasicPanelAdapter.cs
- PreviewPrintController.cs
- SoapCodeExporter.cs
- MarkupProperty.cs
- DictionarySectionHandler.cs
- ChangeTracker.cs
- XmlAnyElementAttributes.cs
- RedirectionProxy.cs
- TraceRecords.cs
- HtmlToClrEventProxy.cs
- FragmentNavigationEventArgs.cs
- HeaderCollection.cs
- AndCondition.cs
- AnonymousIdentificationSection.cs
- FontNamesConverter.cs
- InvalidAsynchronousStateException.cs
- NameSpaceExtractor.cs
- ACL.cs
- ConfigurationLocation.cs
- FileLogRecordHeader.cs
- ResetableIterator.cs
- ActionMessageFilter.cs
- Oid.cs
- PointCollectionValueSerializer.cs
- LoginNameDesigner.cs
- BitmapCodecInfo.cs
- DesignerActionItemCollection.cs
- ClosureBinding.cs
- Int32Rect.cs
- SerializerWriterEventHandlers.cs
- Literal.cs
- NetworkStream.cs
- WebBrowserHelper.cs
- AccessibleObject.cs
- ApplicationHost.cs
- FontDifferentiator.cs
- DrawingVisual.cs
- SinglePageViewer.cs
- SqlProviderServices.cs
- TemplateControlCodeDomTreeGenerator.cs
- XmlSchemaGroupRef.cs
- AmbientLight.cs
- MenuAdapter.cs
- Material.cs
- OperationParameterInfoCollection.cs
- ColumnBinding.cs
- ConfigXmlWhitespace.cs
- ItemsChangedEventArgs.cs
- PointAnimationUsingPath.cs
- ErrorHandler.cs
- MessageProtectionOrder.cs
- SiteMap.cs
- TypeLoadException.cs
- UICuesEvent.cs
- Authorization.cs
- SQLMoneyStorage.cs
- SynchronizationValidator.cs
- WindowsListViewScroll.cs
- TokenizerHelper.cs
- FixedTextPointer.cs
- ToolStripItemEventArgs.cs
- ResourceReferenceKeyNotFoundException.cs
- SerializeAbsoluteContext.cs
- CompilerTypeWithParams.cs
- ImageButton.cs
- PageTextBox.cs
- User.cs
- CreationContext.cs
- Ray3DHitTestResult.cs
- TransformValueSerializer.cs
- ProtocolElement.cs
- ImageMetadata.cs
- UiaCoreApi.cs
- FindCriteriaCD1.cs
- XmlWellformedWriter.cs
- AutoResizedEvent.cs
- BooleanToVisibilityConverter.cs
- Random.cs
- SqlClientWrapperSmiStream.cs
- EntityDataSourceValidationException.cs
- CheckedPointers.cs
- ButtonFieldBase.cs
- OrderedEnumerableRowCollection.cs
- XmlResolver.cs