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
- DataSourceIDConverter.cs
- CssClassPropertyAttribute.cs
- ADMembershipUser.cs
- XmlSerializationGeneratedCode.cs
- PathGeometry.cs
- StsCommunicationException.cs
- SqlCacheDependencyDatabaseCollection.cs
- InputLanguageCollection.cs
- PerspectiveCamera.cs
- FreezableOperations.cs
- RemotingServices.cs
- SystemGatewayIPAddressInformation.cs
- TemplateParser.cs
- SqlFactory.cs
- PointValueSerializer.cs
- MarkupProperty.cs
- ParallelTimeline.cs
- SqlDataSourceFilteringEventArgs.cs
- ModuleBuilder.cs
- SoapProtocolReflector.cs
- WorkflowMarkupSerializationException.cs
- AnimationTimeline.cs
- DataSourceComponent.cs
- TreeChangeInfo.cs
- PropertyPathWorker.cs
- StoragePropertyMapping.cs
- COM2TypeInfoProcessor.cs
- ToolStripDropDownMenu.cs
- HiddenFieldPageStatePersister.cs
- PersianCalendar.cs
- SerializationException.cs
- SQLResource.cs
- TextView.cs
- DataObjectSettingDataEventArgs.cs
- TargetPerspective.cs
- ApplicationCommands.cs
- HttpHandlersSection.cs
- FunctionCommandText.cs
- recordstatefactory.cs
- PropertyChangedEventArgs.cs
- DataGridViewCellValueEventArgs.cs
- XmlWrappingReader.cs
- BuildDependencySet.cs
- LinqDataSourceHelper.cs
- CodeTypeReferenceCollection.cs
- CompleteWizardStep.cs
- ImportRequest.cs
- ItemAutomationPeer.cs
- CodeDOMProvider.cs
- QuaternionConverter.cs
- SchemaTableOptionalColumn.cs
- PropertyManager.cs
- HttpContextServiceHost.cs
- XamlHttpHandlerFactory.cs
- TypeDescriptionProvider.cs
- Zone.cs
- TraceListener.cs
- GPPOINT.cs
- Int32RectValueSerializer.cs
- DataRecordInternal.cs
- SHA512Managed.cs
- DataGridViewBand.cs
- GridViewSortEventArgs.cs
- BufferBuilder.cs
- XmlBinaryReader.cs
- DrawingContextDrawingContextWalker.cs
- HtmlEncodedRawTextWriter.cs
- OperationCanceledException.cs
- BindingWorker.cs
- UriExt.cs
- InvalidWMPVersionException.cs
- UndoManager.cs
- GeneralTransformGroup.cs
- SineEase.cs
- XPathQilFactory.cs
- Merger.cs
- Queue.cs
- XmlToDatasetMap.cs
- BufferedGraphicsContext.cs
- _ContextAwareResult.cs
- SQLInt16.cs
- TemplateControlBuildProvider.cs
- FixedTextSelectionProcessor.cs
- SpecialNameAttribute.cs
- wgx_render.cs
- LinkedDataMemberFieldEditor.cs
- CodeCommentStatement.cs
- DependencyPropertyKey.cs
- DeploymentSectionCache.cs
- IisHelper.cs
- CompositeScriptReference.cs
- BuildResult.cs
- ApplicationBuildProvider.cs
- ExceptionUtil.cs
- WindowsComboBox.cs
- XmlAttributeProperties.cs
- ProgressBarAutomationPeer.cs
- ValidationPropertyAttribute.cs
- PropertyInformationCollection.cs
- GetMemberBinder.cs