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
- BaseInfoTable.cs
- SessionPageStatePersister.cs
- DrawingState.cs
- DataControlReferenceCollection.cs
- LexicalChunk.cs
- QueryExpr.cs
- NullableDecimalSumAggregationOperator.cs
- XmlSchemaIdentityConstraint.cs
- TextElementEditingBehaviorAttribute.cs
- GridViewDeletedEventArgs.cs
- SystemBrushes.cs
- SecurityContextCookieSerializer.cs
- FileReader.cs
- HtmlMeta.cs
- WorkerRequest.cs
- ReadOnlyDataSource.cs
- MdiWindowListItemConverter.cs
- Literal.cs
- MappingException.cs
- CTreeGenerator.cs
- ScriptManagerProxy.cs
- WindowsStreamSecurityUpgradeProvider.cs
- CodeNamespaceCollection.cs
- DataGridViewTextBoxColumn.cs
- SinglePhaseEnlistment.cs
- ScriptControlManager.cs
- CompositeDuplexBindingElement.cs
- SimpleMailWebEventProvider.cs
- DataControlFieldHeaderCell.cs
- DocumentOrderComparer.cs
- TagMapCollection.cs
- WorkflowIdleBehavior.cs
- AssemblyNameUtility.cs
- WebPartActionVerb.cs
- RenameRuleObjectDialog.cs
- SqlReorderer.cs
- CacheDependency.cs
- GB18030Encoding.cs
- NotificationContext.cs
- EditorServiceContext.cs
- FamilyCollection.cs
- DataGridViewColumnCollectionDialog.cs
- MetadataCache.cs
- MetadataStore.cs
- InstanceCollisionException.cs
- TcpTransportElement.cs
- CustomValidator.cs
- SR.cs
- __Error.cs
- TokenizerHelper.cs
- ListDictionaryInternal.cs
- CodeTypeOfExpression.cs
- ImageListStreamer.cs
- VisualTarget.cs
- TdsParserStateObject.cs
- RepeatButtonAutomationPeer.cs
- NominalTypeEliminator.cs
- Events.cs
- SecurityHelper.cs
- MessageSecurityOverTcp.cs
- GetIndexBinder.cs
- SchemaElement.cs
- ApplicationSecurityInfo.cs
- CompositionDesigner.cs
- WebExceptionStatus.cs
- RoutedEventArgs.cs
- _SecureChannel.cs
- SimpleTextLine.cs
- QueryConverter.cs
- BackgroundFormatInfo.cs
- SoapReflectionImporter.cs
- ServiceHost.cs
- BindingSource.cs
- XmlSchemaSimpleTypeUnion.cs
- ExpandCollapsePattern.cs
- ExpressionNormalizer.cs
- ObjectComplexPropertyMapping.cs
- WhitespaceRule.cs
- CharacterMetricsDictionary.cs
- FixUpCollection.cs
- PropertyIdentifier.cs
- OdbcDataAdapter.cs
- BaseTemplateBuildProvider.cs
- TypeBuilder.cs
- InputMethod.cs
- CopyAttributesAction.cs
- ObfuscateAssemblyAttribute.cs
- UInt32Converter.cs
- MediaElementAutomationPeer.cs
- TypeValidationEventArgs.cs
- AutoSizeToolBoxItem.cs
- ParallelForEach.cs
- Html32TextWriter.cs
- DataGridViewTopRowAccessibleObject.cs
- DependencyPropertyKind.cs
- IncrementalReadDecoders.cs
- ListViewItemMouseHoverEvent.cs
- DataGridColumn.cs
- ClientTargetSection.cs
- XmlTypeMapping.cs