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
- Vector3DConverter.cs
- SizeFConverter.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- WrappingXamlSchemaContext.cs
- XsdDuration.cs
- FixedSOMPage.cs
- CompilerTypeWithParams.cs
- ModelChangedEventArgsImpl.cs
- UpdatePanelControlTrigger.cs
- FunctionImportElement.cs
- ExceptionHandlersDesigner.cs
- XmlSchemaChoice.cs
- ObjectNavigationPropertyMapping.cs
- WebPartConnectionsDisconnectVerb.cs
- StateBag.cs
- RegexBoyerMoore.cs
- IPEndPoint.cs
- DBConcurrencyException.cs
- GeometryGroup.cs
- PopupControlService.cs
- WCFModelStrings.Designer.cs
- StoreConnection.cs
- LogFlushAsyncResult.cs
- CodeConditionStatement.cs
- ContextMenuStrip.cs
- MethodBuilderInstantiation.cs
- ArrayConverter.cs
- RegisteredExpandoAttribute.cs
- DataReaderContainer.cs
- SynchronizationContext.cs
- XmlNamedNodeMap.cs
- EditorPartChrome.cs
- MeshGeometry3D.cs
- QilLoop.cs
- JournalNavigationScope.cs
- HttpWrapper.cs
- SafeRightsManagementHandle.cs
- NaturalLanguageHyphenator.cs
- PackageFilter.cs
- IndependentAnimationStorage.cs
- AttachInfo.cs
- SqlEnums.cs
- FreezableCollection.cs
- RequiredAttributeAttribute.cs
- PropertyBuilder.cs
- PolyQuadraticBezierSegment.cs
- Win32MouseDevice.cs
- DesignerResources.cs
- SchemaComplexType.cs
- SqlRowUpdatingEvent.cs
- ScalarConstant.cs
- CompilerState.cs
- LayoutUtils.cs
- UniqueIdentifierService.cs
- Query.cs
- StringAnimationUsingKeyFrames.cs
- TypedLocationWrapper.cs
- DetailsViewInsertEventArgs.cs
- BaseTemplateBuildProvider.cs
- CornerRadiusConverter.cs
- X509Chain.cs
- DataGridAddNewRow.cs
- AssemblyBuilder.cs
- StringValidatorAttribute.cs
- OdbcStatementHandle.cs
- AsyncCompletedEventArgs.cs
- DataGridRowEventArgs.cs
- JobInputBins.cs
- SqlUDTStorage.cs
- SRDisplayNameAttribute.cs
- XmlAttributeCache.cs
- DataContractSerializer.cs
- FormsAuthentication.cs
- InternalTransaction.cs
- ValidatingReaderNodeData.cs
- ChildChangedEventArgs.cs
- DesignerValidationSummaryAdapter.cs
- MonthCalendar.cs
- FormViewRow.cs
- ThaiBuddhistCalendar.cs
- HyperLink.cs
- WorkflowServiceBehavior.cs
- IdentifierCreationService.cs
- DescendantBaseQuery.cs
- InputLanguage.cs
- Math.cs
- ApplicationTrust.cs
- RenderCapability.cs
- StrongName.cs
- DES.cs
- LoginView.cs
- ContentElementAutomationPeer.cs
- CompensationDesigner.cs
- PolygonHotSpot.cs
- EntityContainerRelationshipSetEnd.cs
- ControlPropertyNameConverter.cs
- RuntimeVariableList.cs
- TreeNode.cs
- XmlnsCompatibleWithAttribute.cs
- TextEditorCopyPaste.cs