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
- CmsInterop.cs
- TabletCollection.cs
- Compiler.cs
- DuplicateContext.cs
- UnSafeCharBuffer.cs
- ErasingStroke.cs
- Msec.cs
- MSAAEventDispatcher.cs
- SetIterators.cs
- InputGestureCollection.cs
- RootNamespaceAttribute.cs
- MimeFormReflector.cs
- processwaithandle.cs
- XmlIlGenerator.cs
- PropertyMapper.cs
- LoginName.cs
- SqlNodeAnnotations.cs
- StreamingContext.cs
- SerializationFieldInfo.cs
- SecurityProtocolFactory.cs
- OdbcReferenceCollection.cs
- CapacityStreamGeometryContext.cs
- TranslateTransform.cs
- StrongNameIdentityPermission.cs
- TextServicesHost.cs
- DataIdProcessor.cs
- ColumnHeaderConverter.cs
- CompressStream.cs
- SettingsPropertyCollection.cs
- ResourceExpressionEditorSheet.cs
- CommandHelper.cs
- TypeResolvingOptionsAttribute.cs
- EditCommandColumn.cs
- AbsoluteQuery.cs
- CodeTypeMember.cs
- PropertyOverridesTypeEditor.cs
- DiagnosticTraceSource.cs
- XmlDeclaration.cs
- XmlILModule.cs
- SlipBehavior.cs
- TimeoutException.cs
- HostedHttpTransportManager.cs
- TimerElapsedEvenArgs.cs
- QueryContinueDragEvent.cs
- CodeGen.cs
- DataGridViewCellFormattingEventArgs.cs
- Soap.cs
- HebrewNumber.cs
- Size3DConverter.cs
- NativeWrapper.cs
- XmlObjectSerializerWriteContextComplex.cs
- DesignTimeHTMLTextWriter.cs
- Ops.cs
- ImageListStreamer.cs
- DefaultCompensation.cs
- ButtonFlatAdapter.cs
- OutOfMemoryException.cs
- SafeNativeMemoryHandle.cs
- MultipleViewPatternIdentifiers.cs
- IsolatedStorageFile.cs
- EventManager.cs
- PageThemeCodeDomTreeGenerator.cs
- Journaling.cs
- hwndwrapper.cs
- NavigationEventArgs.cs
- ExpressionEditorAttribute.cs
- ActiveXHost.cs
- FontResourceCache.cs
- ExclusiveTcpListener.cs
- ContentType.cs
- OdbcRowUpdatingEvent.cs
- GrabHandleGlyph.cs
- FileUtil.cs
- KeyInfo.cs
- Logging.cs
- XmlSchemaObjectCollection.cs
- UInt32Storage.cs
- SqlReorderer.cs
- Point3D.cs
- RemoteWebConfigurationHostServer.cs
- Activity.cs
- ThicknessAnimationBase.cs
- EntityDataSourceStatementEditorForm.cs
- EntityDataSourceReferenceGroup.cs
- MetadataUtilsSmi.cs
- DocumentOrderQuery.cs
- CookieParameter.cs
- MergeLocalizationDirectives.cs
- BaseTemplatedMobileComponentEditor.cs
- Resources.Designer.cs
- TabControl.cs
- smtppermission.cs
- keycontainerpermission.cs
- DetailsView.cs
- UnsafeNativeMethods.cs
- DesignerVerb.cs
- PageAsyncTaskManager.cs
- ManualWorkflowSchedulerService.cs
- XmlNamespaceDeclarationsAttribute.cs
- InputChannelBinder.cs