Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / SamlSubjectStatement.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Configuration.cs
- XmlSchemaSimpleTypeUnion.cs
- CallbackHandler.cs
- ExtentCqlBlock.cs
- SelectionProcessor.cs
- DataKeyCollection.cs
- ChildTable.cs
- SqlMethodTransformer.cs
- XPathNavigator.cs
- LogicalCallContext.cs
- DateTimeConverter.cs
- XmlNullResolver.cs
- HttpVersion.cs
- DataViewSettingCollection.cs
- CapabilitiesAssignment.cs
- SizeLimitedCache.cs
- httpserverutility.cs
- XsdDateTime.cs
- Overlapped.cs
- TileBrush.cs
- DnsPermission.cs
- BitmapFrameEncode.cs
- DataGridViewComponentPropertyGridSite.cs
- InfiniteTimeSpanConverter.cs
- MetadataFile.cs
- TextInfo.cs
- ExpandoClass.cs
- TabPageDesigner.cs
- SelectedDatesCollection.cs
- DecryptRequest.cs
- MessageLoggingFilterTraceRecord.cs
- SkinBuilder.cs
- BitmapDownload.cs
- DynamicControl.cs
- Effect.cs
- BamlCollectionHolder.cs
- SoapBinding.cs
- Item.cs
- PublishLicense.cs
- DesignerValidatorAdapter.cs
- EntityTypeBase.cs
- SignatureResourcePool.cs
- ParameterToken.cs
- ContainerParaClient.cs
- ConfigurationLockCollection.cs
- MsmqAppDomainProtocolHandler.cs
- WebPartExportVerb.cs
- ServicePoint.cs
- PinnedBufferMemoryStream.cs
- ReaderWriterLock.cs
- ProtocolsConfiguration.cs
- BinaryNode.cs
- Stackframe.cs
- SimpleModelProvider.cs
- HttpContext.cs
- SafeArrayTypeMismatchException.cs
- ByteStack.cs
- FileInfo.cs
- ProxyGenerator.cs
- _ContextAwareResult.cs
- HeaderedContentControl.cs
- TextBoxView.cs
- Merger.cs
- XPathDocumentBuilder.cs
- MessageHeaderException.cs
- DynamicControl.cs
- CategoryGridEntry.cs
- MenuAdapter.cs
- SafeNativeMethods.cs
- ViewStateException.cs
- QueryOperatorEnumerator.cs
- ModulesEntry.cs
- EdmItemCollection.OcAssemblyCache.cs
- OleDbConnectionFactory.cs
- PageAsyncTaskManager.cs
- FlowLayoutPanelDesigner.cs
- NavigationPropertyEmitter.cs
- ArgumentOutOfRangeException.cs
- RoutedEventConverter.cs
- ValidationEventArgs.cs
- WorkflowPageSetupDialog.cs
- MultiByteCodec.cs
- Reference.cs
- RegexCapture.cs
- ExtensionElementCollection.cs
- autovalidator.cs
- ContractMapping.cs
- URL.cs
- ImmutablePropertyDescriptorGridEntry.cs
- BamlTreeNode.cs
- SpinWait.cs
- IncrementalReadDecoders.cs
- MessageQueuePermissionAttribute.cs
- ExceptionRoutedEventArgs.cs
- LinkArea.cs
- HttpCachePolicyBase.cs
- TemplateBaseAction.cs
- DiscoveryDocument.cs
- AppSettings.cs
- ScriptHandlerFactory.cs