Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Context.cs
- EtwTrace.cs
- Visual3D.cs
- SimpleWebHandlerParser.cs
- ToolboxItemWrapper.cs
- CorrelationManager.cs
- BindingExpressionUncommonField.cs
- AccessText.cs
- NumberFormatInfo.cs
- Validator.cs
- TextEditorSelection.cs
- RC2CryptoServiceProvider.cs
- UnsafePeerToPeerMethods.cs
- ListItemConverter.cs
- OperationPerformanceCounters.cs
- CodeTypeReference.cs
- VisualCollection.cs
- XPathSelectionIterator.cs
- VectorCollectionConverter.cs
- AssertSection.cs
- DataRecordInternal.cs
- ChangeInterceptorAttribute.cs
- StringConcat.cs
- ActivityBuilder.cs
- IsolatedStorageException.cs
- HostVisual.cs
- EventTrigger.cs
- CalendarDay.cs
- HMAC.cs
- StrokeCollectionDefaultValueFactory.cs
- SemanticAnalyzer.cs
- WindowsFormsHelpers.cs
- MinimizableAttributeTypeConverter.cs
- SecUtil.cs
- HttpCapabilitiesSectionHandler.cs
- TreeViewCancelEvent.cs
- RawUIStateInputReport.cs
- HtmlWindowCollection.cs
- ClientTargetSection.cs
- Brush.cs
- UriTemplateTable.cs
- Item.cs
- GridLength.cs
- BidPrivateBase.cs
- SqlGenericUtil.cs
- UriSection.cs
- ExtenderHelpers.cs
- GeometryConverter.cs
- BaseValidator.cs
- EventWaitHandle.cs
- AssociatedControlConverter.cs
- InputLangChangeEvent.cs
- IntranetCredentialPolicy.cs
- PrintController.cs
- ConstantProjectedSlot.cs
- ManagedIStream.cs
- MD5.cs
- SmiSettersStream.cs
- MessageHeaderInfoTraceRecord.cs
- LoadGrammarCompletedEventArgs.cs
- sortedlist.cs
- ItemContainerGenerator.cs
- XmlUTF8TextWriter.cs
- MetadataFile.cs
- Size3DConverter.cs
- EntityCommandCompilationException.cs
- SafeFileMappingHandle.cs
- InputLanguageCollection.cs
- BevelBitmapEffect.cs
- WebHeaderCollection.cs
- ResizingMessageFilter.cs
- PropertyMappingExceptionEventArgs.cs
- Visual3D.cs
- SettingsProviderCollection.cs
- Container.cs
- UriParserTemplates.cs
- FixedLineResult.cs
- PartialCachingAttribute.cs
- TargetInvocationException.cs
- XComponentModel.cs
- LocatorBase.cs
- FusionWrap.cs
- ProxyWebPart.cs
- BidOverLoads.cs
- EdmTypeAttribute.cs
- TextServicesDisplayAttributePropertyRanges.cs
- TextClipboardData.cs
- FixedTextContainer.cs
- RadioButton.cs
- IPAddress.cs
- Resources.Designer.cs
- Grant.cs
- SQLInt16.cs
- DataPagerCommandEventArgs.cs
- RequestResizeEvent.cs
- OutputCacheProfile.cs
- Lease.cs
- TypeProvider.cs
- ImportContext.cs
- LinearGradientBrush.cs