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
- DbgUtil.cs
- XmlnsDictionary.cs
- EntityUtil.cs
- TripleDESCryptoServiceProvider.cs
- TargetControlTypeAttribute.cs
- ZipIOExtraFieldZip64Element.cs
- TextElementAutomationPeer.cs
- ExpressionBindingCollection.cs
- IsolatedStorageFilePermission.cs
- MarkerProperties.cs
- WebPartTransformerCollection.cs
- MarshalByRefObject.cs
- Msmq.cs
- Attributes.cs
- CalendarTable.cs
- WindowsGrip.cs
- SystemResources.cs
- DataGridViewCellValidatingEventArgs.cs
- FunctionParameter.cs
- OpenFileDialog.cs
- ReliableChannelListener.cs
- StrokeCollectionDefaultValueFactory.cs
- ByteStream.cs
- LostFocusEventManager.cs
- IApplicationTrustManager.cs
- CopyNodeSetAction.cs
- WebPartCatalogCloseVerb.cs
- RangeContentEnumerator.cs
- PolicyChain.cs
- QilLiteral.cs
- DrawingVisual.cs
- StrokeNodeOperations2.cs
- HashCodeCombiner.cs
- HandlerFactoryWrapper.cs
- StyleBamlTreeBuilder.cs
- ParameterBuilder.cs
- UriParserTemplates.cs
- EncoderExceptionFallback.cs
- AdPostCacheSubstitution.cs
- TargetControlTypeAttribute.cs
- BlurEffect.cs
- SoapReflectionImporter.cs
- DocumentOrderComparer.cs
- TraceContextRecord.cs
- FileDialog_Vista_Interop.cs
- RayMeshGeometry3DHitTestResult.cs
- AutomationProperties.cs
- SimpleExpression.cs
- HtmlShim.cs
- WebPartTransformerCollection.cs
- ExpandCollapsePattern.cs
- PrePostDescendentsWalker.cs
- ControlBuilderAttribute.cs
- NavigationEventArgs.cs
- DataSourceXmlSubItemAttribute.cs
- FileStream.cs
- TcpDuplicateContext.cs
- MaskedTextProvider.cs
- ComboBoxDesigner.cs
- ObjectToModelValueConverter.cs
- ObjectDataSourceDisposingEventArgs.cs
- TableSectionStyle.cs
- MachineKeyConverter.cs
- HostVisual.cs
- TemplateControlBuildProvider.cs
- ObjectListItem.cs
- OutputCacheProfileCollection.cs
- MemberRestriction.cs
- FragmentQuery.cs
- ScriptIgnoreAttribute.cs
- XmlSchemaElement.cs
- Models.cs
- DecimalAnimationBase.cs
- OdbcConnectionFactory.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- StoreItemCollection.Loader.cs
- DirectoryLocalQuery.cs
- ObjectPersistData.cs
- FontDialog.cs
- DataExpression.cs
- EventLogRecord.cs
- OrderedDictionary.cs
- ResourceIDHelper.cs
- GetFileNameResult.cs
- ToolStripPanelCell.cs
- AutomationTextAttribute.cs
- XamlTypeMapperSchemaContext.cs
- Icon.cs
- DbMetaDataFactory.cs
- XpsManager.cs
- InvokeWebService.cs
- TextEffectCollection.cs
- ComplexObject.cs
- HotSpotCollectionEditor.cs
- tooltip.cs
- XpsS0ValidatingLoader.cs
- AssemblyAttributes.cs
- RectAnimationBase.cs
- DecoratedNameAttribute.cs
- ErrorWrapper.cs