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
- ExpressionConverter.cs
- SemanticResolver.cs
- ObjectViewFactory.cs
- SoapSchemaExporter.cs
- AttachmentCollection.cs
- ScrollItemPatternIdentifiers.cs
- LocalBuilder.cs
- DictionaryManager.cs
- EntityCollectionChangedParams.cs
- BufferedReceiveManager.cs
- CommentEmitter.cs
- handlecollector.cs
- PropertyChangingEventArgs.cs
- DataGridViewLinkColumn.cs
- WebDescriptionAttribute.cs
- ServiceObjectContainer.cs
- XmlSerializer.cs
- TextParentUndoUnit.cs
- CompilerError.cs
- BitmapCacheBrush.cs
- ContainsRowNumberChecker.cs
- TypedReference.cs
- UIElementParagraph.cs
- XmlILStorageConverter.cs
- MouseDevice.cs
- BitmapEffectGeneralTransform.cs
- PeerApplication.cs
- _OSSOCK.cs
- BuildManagerHost.cs
- CopyAttributesAction.cs
- RSAPKCS1SignatureDeformatter.cs
- PopupRoot.cs
- Button.cs
- UriTemplateHelpers.cs
- PartitionResolver.cs
- GridItemPatternIdentifiers.cs
- Constant.cs
- DrawingCollection.cs
- DictionaryEntry.cs
- AnnotationDocumentPaginator.cs
- Message.cs
- ObsoleteAttribute.cs
- CustomAttributeFormatException.cs
- StateFinalizationDesigner.cs
- AnnotationDocumentPaginator.cs
- TypeGeneratedEventArgs.cs
- GlyphCache.cs
- BaseHashHelper.cs
- Thickness.cs
- SchemaTableColumn.cs
- TypeConverterHelper.cs
- RowBinding.cs
- AddInController.cs
- WorkflowViewManager.cs
- ParagraphResult.cs
- StackBuilderSink.cs
- Subtree.cs
- EventRoute.cs
- Light.cs
- FixUp.cs
- coordinator.cs
- WorkflowTimerService.cs
- KeyConverter.cs
- TextAutomationPeer.cs
- SessionStateModule.cs
- EncodingInfo.cs
- XslUrlEditor.cs
- AsyncCompletedEventArgs.cs
- PerfCounters.cs
- Geometry.cs
- LassoHelper.cs
- BamlLocalizableResourceKey.cs
- StateMachine.cs
- PostBackOptions.cs
- EditorZone.cs
- ExeConfigurationFileMap.cs
- Pair.cs
- ObjectDataSourceFilteringEventArgs.cs
- HttpProfileGroupBase.cs
- GeometryCombineModeValidation.cs
- WebBrowsableAttribute.cs
- WCFModelStrings.Designer.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- ItemsPanelTemplate.cs
- Boolean.cs
- SineEase.cs
- TypeDelegator.cs
- SelectionPattern.cs
- SqlBuffer.cs
- DependencyObject.cs
- ColumnMapTranslator.cs
- SoapAttributeAttribute.cs
- InternalBase.cs
- MimeParameterWriter.cs
- TemplateControlCodeDomTreeGenerator.cs
- PrintDialog.cs
- XD.cs
- ComMethodElementCollection.cs
- ListView.cs
- DataGridViewRowHeaderCell.cs