Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Claims / ClaimSet.cs / 1305376 / ClaimSet.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.IdentityModel.Claims
{
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Security.Principal;
using System.Text;
[DataContract(Namespace = XsiConstants.Namespace)]
public abstract class ClaimSet : IEnumerable
{
static ClaimSet system;
static ClaimSet windows;
static ClaimSet anonymous;
public static ClaimSet System
{
get
{
if (system == null)
{
List claims = new List(2);
claims.Add(Claim.System);
claims.Add(new Claim(ClaimTypes.System, XsiConstants.System, Rights.PossessProperty));
system = new DefaultClaimSet(claims);
}
return system;
}
}
public static ClaimSet Windows
{
get
{
if (windows == null)
{
List claims = new List(2);
SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.NTAuthoritySid, null);
claims.Add(new Claim(ClaimTypes.Sid, sid, Rights.Identity));
claims.Add(Claim.CreateWindowsSidClaim(sid));
windows = new DefaultClaimSet(claims);
}
return windows;
}
}
internal static ClaimSet Anonymous
{
get
{
if (anonymous == null)
anonymous = new DefaultClaimSet();
return anonymous;
}
}
static internal bool SupportedRight(string right)
{
return right == null ||
Rights.Identity.Equals(right) ||
Rights.PossessProperty.Equals(right);
}
public virtual bool ContainsClaim(Claim claim, IEqualityComparer comparer)
{
if (claim == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("claim");
if (comparer == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("comparer");
IEnumerable claims = FindClaims(null, null);
if (claims != null)
{
foreach (Claim matchingClaim in claims)
{
if (comparer.Equals(claim, matchingClaim))
return true;
}
}
return false;
}
public virtual bool ContainsClaim(Claim claim)
{
if (claim == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("claim");
IEnumerable claims = FindClaims(claim.ClaimType, claim.Right);
if (claims != null)
{
foreach (Claim matchingClaim in claims)
{
if (claim.Equals(matchingClaim))
return true;
}
}
return false;
}
public abstract Claim this[int index] { get; }
public abstract int Count { get; }
public abstract ClaimSet Issuer { get; }
// Note: null string represents any.
public abstract IEnumerable FindClaims(string claimType, string right);
public abstract IEnumerator GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); }
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.IdentityModel.Claims
{
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Security.Principal;
using System.Text;
[DataContract(Namespace = XsiConstants.Namespace)]
public abstract class ClaimSet : IEnumerable
{
static ClaimSet system;
static ClaimSet windows;
static ClaimSet anonymous;
public static ClaimSet System
{
get
{
if (system == null)
{
List claims = new List(2);
claims.Add(Claim.System);
claims.Add(new Claim(ClaimTypes.System, XsiConstants.System, Rights.PossessProperty));
system = new DefaultClaimSet(claims);
}
return system;
}
}
public static ClaimSet Windows
{
get
{
if (windows == null)
{
List claims = new List(2);
SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.NTAuthoritySid, null);
claims.Add(new Claim(ClaimTypes.Sid, sid, Rights.Identity));
claims.Add(Claim.CreateWindowsSidClaim(sid));
windows = new DefaultClaimSet(claims);
}
return windows;
}
}
internal static ClaimSet Anonymous
{
get
{
if (anonymous == null)
anonymous = new DefaultClaimSet();
return anonymous;
}
}
static internal bool SupportedRight(string right)
{
return right == null ||
Rights.Identity.Equals(right) ||
Rights.PossessProperty.Equals(right);
}
public virtual bool ContainsClaim(Claim claim, IEqualityComparer comparer)
{
if (claim == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("claim");
if (comparer == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("comparer");
IEnumerable claims = FindClaims(null, null);
if (claims != null)
{
foreach (Claim matchingClaim in claims)
{
if (comparer.Equals(claim, matchingClaim))
return true;
}
}
return false;
}
public virtual bool ContainsClaim(Claim claim)
{
if (claim == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("claim");
IEnumerable claims = FindClaims(claim.ClaimType, claim.Right);
if (claims != null)
{
foreach (Claim matchingClaim in claims)
{
if (claim.Equals(matchingClaim))
return true;
}
}
return false;
}
public abstract Claim this[int index] { get; }
public abstract int Count { get; }
public abstract ClaimSet Issuer { get; }
// Note: null string represents any.
public abstract IEnumerable FindClaims(string claimType, string right);
public abstract IEnumerator GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); }
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IPipelineRuntime.cs
- ProxyGenerator.cs
- TextRangeEditLists.cs
- PackageDigitalSignatureManager.cs
- GACMembershipCondition.cs
- ButtonBaseAutomationPeer.cs
- MailSettingsSection.cs
- OptimalBreakSession.cs
- BrowserCapabilitiesFactory.cs
- QuarticEase.cs
- AssemblyName.cs
- DataServiceCollectionOfT.cs
- PocoPropertyAccessorStrategy.cs
- ScriptServiceAttribute.cs
- ToolBarOverflowPanel.cs
- ListItem.cs
- TypeBuilderInstantiation.cs
- BrushConverter.cs
- TextBox.cs
- ScrollPattern.cs
- DataList.cs
- PictureBoxDesigner.cs
- oledbmetadatacollectionnames.cs
- StringReader.cs
- SimpleLine.cs
- DiffuseMaterial.cs
- Manipulation.cs
- PathFigure.cs
- Rijndael.cs
- Variant.cs
- FontSource.cs
- CallbackTimeoutsElement.cs
- FeatureManager.cs
- LineInfo.cs
- SamlDoNotCacheCondition.cs
- BufferedMessageData.cs
- FormViewInsertedEventArgs.cs
- ShaderEffect.cs
- DecoratedNameAttribute.cs
- SemanticBasicElement.cs
- ColumnHeader.cs
- ConnectionsZone.cs
- AtomMaterializerLog.cs
- IdleTimeoutMonitor.cs
- EdmItemCollection.OcAssemblyCache.cs
- DBCSCodePageEncoding.cs
- __Error.cs
- PopupEventArgs.cs
- ChtmlCalendarAdapter.cs
- Logging.cs
- GridPattern.cs
- AspNetHostingPermission.cs
- DataGridPagerStyle.cs
- webbrowsersite.cs
- StoryFragments.cs
- RefreshInfo.cs
- InternalDispatchObject.cs
- CodeIdentifier.cs
- EventHandlersStore.cs
- complextypematerializer.cs
- ObjectDataSourceMethodEventArgs.cs
- UInt16.cs
- DataGridViewCellPaintingEventArgs.cs
- CoTaskMemSafeHandle.cs
- Freezable.cs
- Border.cs
- CompressedStack.cs
- MobileControlsSectionHandler.cs
- Rfc2898DeriveBytes.cs
- TextEndOfLine.cs
- FacetDescriptionElement.cs
- WSFederationHttpBinding.cs
- _ProxyChain.cs
- DrawingGroup.cs
- XmlDsigSep2000.cs
- XpsSerializationException.cs
- ObjectNavigationPropertyMapping.cs
- BindingEditor.xaml.cs
- BitmapEffectInput.cs
- ButtonBase.cs
- CommentEmitter.cs
- OutputCacheProfileCollection.cs
- QueryPageSettingsEventArgs.cs
- WebPartConnectionsEventArgs.cs
- XPathDocument.cs
- DefaultParameterValueAttribute.cs
- PartialTrustValidationBehavior.cs
- XamlPointCollectionSerializer.cs
- DataServiceKeyAttribute.cs
- ReliableChannelListener.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- COM2PictureConverter.cs
- InfoCard.cs
- _KerberosClient.cs
- DrawingCollection.cs
- StickyNoteAnnotations.cs
- SecurityKeyUsage.cs
- WindowsStartMenu.cs
- Domain.cs
- BitmapFrameEncode.cs