Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / SamlSubjectStatement.cs / 1 / SamlSubjectStatement.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.IdentityModel.Tokens { using System.Collections.Generic; using System.Collections.ObjectModel; using System.IdentityModel.Claims; using System.IdentityModel.Policy; using System.IdentityModel.Selectors; using System.Security.Principal; public abstract class SamlSubjectStatement : SamlStatement { SamlSubject subject; IAuthorizationPolicy policy; bool isReadOnly = false; protected SamlSubjectStatement() { } protected SamlSubjectStatement(SamlSubject samlSubject) { if (samlSubject == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("samlSubject")); this.subject = samlSubject; } public SamlSubject SamlSubject { get {return this.subject; } set { if (isReadOnly) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ObjectIsReadOnly))); if (value == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("value")); this.subject = value; } } public override bool IsReadOnly { get { return this.isReadOnly; } } public override void MakeReadOnly() { if (!this.isReadOnly) { subject.MakeReadOnly(); this.isReadOnly = true; } } public override IAuthorizationPolicy CreatePolicy(ClaimSet issuer, SamlSecurityTokenAuthenticator samlAuthenticator) { if (issuer == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("issuer"); // SupportingTokenAuthenticator collection can be null when the Subject does not // contain a key. if (this.policy == null) { ListclaimSets = new List (); ClaimSet subjectKeyClaimset = this.subject.ExtractSubjectKeyClaimSet(samlAuthenticator); if (subjectKeyClaimset != null) claimSets.Add(subjectKeyClaimset); List claims = new List (); ReadOnlyCollection subjectClaims = this.subject.ExtractClaims(); for (int i = 0; i < subjectClaims.Count; ++i) { claims.Add(subjectClaims[i]); } AddClaimsToList(claims); claimSets.Add(new DefaultClaimSet(issuer, claims)); this.policy = new UnconditionalPolicy(this.subject.Identity, claimSets.AsReadOnly(), SecurityUtils.MaxUtcDateTime); } return this.policy; } protected void SetSubject(SamlSubject samlSubject) { if (samlSubject == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("samlSubject")); this.subject = samlSubject; } protected abstract void AddClaimsToList(IList claims); } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DurableInstanceContextProvider.cs
- Thickness.cs
- CodeDOMUtility.cs
- TextBox.cs
- Section.cs
- BamlTreeNode.cs
- DiscoveryInnerClientAdhoc11.cs
- TagMapCollection.cs
- ArrayConverter.cs
- SafeLibraryHandle.cs
- WebPartCancelEventArgs.cs
- AutoSizeComboBox.cs
- RoamingStoreFile.cs
- ToolStripItemImageRenderEventArgs.cs
- StyleReferenceConverter.cs
- UrlPropertyAttribute.cs
- XmlIterators.cs
- ImageSourceValueSerializer.cs
- PerspectiveCamera.cs
- IResourceProvider.cs
- CharStorage.cs
- _WinHttpWebProxyDataBuilder.cs
- TextServicesContext.cs
- HttpServerVarsCollection.cs
- ChangeInterceptorAttribute.cs
- ExpressionBindingCollection.cs
- PassportAuthenticationModule.cs
- ConstructorNeedsTagAttribute.cs
- LinkLabel.cs
- SqlBulkCopy.cs
- UrlPath.cs
- BitmapPalettes.cs
- IndependentlyAnimatedPropertyMetadata.cs
- _ConnectStream.cs
- WmlImageAdapter.cs
- BuildManagerHost.cs
- DataGridViewColumnConverter.cs
- ConnectionsZone.cs
- AttributeProviderAttribute.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- PagesChangedEventArgs.cs
- CryptoApi.cs
- ProfessionalColorTable.cs
- DbModificationClause.cs
- ReadOnlyMetadataCollection.cs
- EditorZoneAutoFormat.cs
- Encoder.cs
- MetadataItemEmitter.cs
- unsafenativemethodstextservices.cs
- ForwardPositionQuery.cs
- References.cs
- SplitterPanelDesigner.cs
- SafeIUnknown.cs
- QueueTransferProtocol.cs
- EventProviderWriter.cs
- TransformedBitmap.cs
- cryptoapiTransform.cs
- RawAppCommandInputReport.cs
- SqlDataSourceEnumerator.cs
- AppendHelper.cs
- ComplexType.cs
- LogAppendAsyncResult.cs
- SByteConverter.cs
- XsdDuration.cs
- TraceContextEventArgs.cs
- EnumValAlphaComparer.cs
- ObjectManager.cs
- HotSpotCollectionEditor.cs
- XsdDateTime.cs
- ArraySet.cs
- QuaternionIndependentAnimationStorage.cs
- PerformanceCounterPermissionEntry.cs
- DataSourceProvider.cs
- OnOperation.cs
- RemotingConfigParser.cs
- ContainsRowNumberChecker.cs
- ProtocolsConfigurationHandler.cs
- MessageSecurityTokenVersion.cs
- TextDecorationCollectionConverter.cs
- ToolStripRenderer.cs
- assemblycache.cs
- Assembly.cs
- CryptoConfig.cs
- URLAttribute.cs
- DefaultAuthorizationContext.cs
- embossbitmapeffect.cs
- EtwTrace.cs
- PartialTrustVisibleAssembly.cs
- SingleAnimationBase.cs
- ThicknessConverter.cs
- XmlNamedNodeMap.cs
- EventMetadata.cs
- CmsInterop.cs
- XD.cs
- CodeAccessPermission.cs
- Blend.cs
- NavigationHelper.cs
- SettingsAttributeDictionary.cs
- ProviderIncompatibleException.cs
- JsonMessageEncoderFactory.cs