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
- ProcessHost.cs
- DescendentsWalkerBase.cs
- Matrix.cs
- HiddenField.cs
- TreeNodeMouseHoverEvent.cs
- TextDecorationCollectionConverter.cs
- EqualityComparer.cs
- InstanceData.cs
- IntellisenseTextBox.cs
- LinqDataSourceUpdateEventArgs.cs
- BrowserTree.cs
- TextBlockAutomationPeer.cs
- KeyTimeConverter.cs
- SelectionPattern.cs
- RepeaterItem.cs
- XamlToRtfWriter.cs
- SortedDictionary.cs
- SqlRewriteScalarSubqueries.cs
- ValueTypeFixupInfo.cs
- XmlDataImplementation.cs
- OdbcRowUpdatingEvent.cs
- FlowDecisionDesigner.xaml.cs
- listitem.cs
- PeerTransportListenAddressConverter.cs
- TemplatedMailWebEventProvider.cs
- ArrayWithOffset.cs
- AnnotationResourceChangedEventArgs.cs
- SqlProvider.cs
- Style.cs
- SimpleWorkerRequest.cs
- InvokeBinder.cs
- SID.cs
- StretchValidation.cs
- MeasureItemEvent.cs
- ReachDocumentPageSerializer.cs
- HwndProxyElementProvider.cs
- PropertyEmitter.cs
- ModelTreeEnumerator.cs
- BaseDataBoundControl.cs
- FilterElement.cs
- EDesignUtil.cs
- UnmanagedHandle.cs
- PerformanceCountersElement.cs
- IsolatedStorageSecurityState.cs
- LoggedException.cs
- ControlIdConverter.cs
- HtmlEmptyTagControlBuilder.cs
- FontSource.cs
- MulticastOption.cs
- TextDecorationCollection.cs
- DrawingImage.cs
- FormsAuthenticationConfiguration.cs
- ProjectionPruner.cs
- NullableDecimalMinMaxAggregationOperator.cs
- MediaPlayer.cs
- SqlServices.cs
- TextSelectionHighlightLayer.cs
- FunctionImportElement.cs
- SelectionProcessor.cs
- SafeNativeMethods.cs
- Literal.cs
- ReflectionTypeLoadException.cs
- ToolStripStatusLabel.cs
- DesignerAutoFormat.cs
- ParentQuery.cs
- InputBuffer.cs
- ProcessHost.cs
- PropertyMappingExceptionEventArgs.cs
- SendingRequestEventArgs.cs
- RenderingBiasValidation.cs
- EdmItemError.cs
- RecordsAffectedEventArgs.cs
- XmlAutoDetectWriter.cs
- CreateRefExpr.cs
- WindowsAuthenticationEventArgs.cs
- GridItemProviderWrapper.cs
- CompModSwitches.cs
- EncodingNLS.cs
- XmlILAnnotation.cs
- ErrorWebPart.cs
- PeerApplicationLaunchInfo.cs
- TemplateBindingExpressionConverter.cs
- DataGridViewTopLeftHeaderCell.cs
- Identifier.cs
- Atom10FormatterFactory.cs
- UnauthorizedWebPart.cs
- PerformanceCounter.cs
- GenericTypeParameterBuilder.cs
- WebConfigurationHost.cs
- RuleProcessor.cs
- Int32CollectionConverter.cs
- PasswordPropertyTextAttribute.cs
- XmlDataSourceView.cs
- BitmapFrameEncode.cs
- DataRowView.cs
- BuildProvidersCompiler.cs
- unitconverter.cs
- Thumb.cs
- HttpWriter.cs
- CallContext.cs