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
- TextContainer.cs
- MessageBodyDescription.cs
- DebugView.cs
- TypeUsageBuilder.cs
- ScriptControlManager.cs
- ListParagraph.cs
- ResourceAttributes.cs
- ManualResetEvent.cs
- ResourceExpressionEditor.cs
- NativeRecognizer.cs
- LockedActivityGlyph.cs
- ScriptingRoleServiceSection.cs
- XmlChoiceIdentifierAttribute.cs
- ISSmlParser.cs
- RootBrowserWindow.cs
- ListCollectionView.cs
- TransactionBehavior.cs
- HealthMonitoringSection.cs
- GrammarBuilderBase.cs
- XmlAnyAttributeAttribute.cs
- _NegoStream.cs
- AssemblyInfo.cs
- Hashtable.cs
- TableCellCollection.cs
- Attribute.cs
- ToolStripTextBox.cs
- PrintDialog.cs
- TcpTransportSecurity.cs
- IconConverter.cs
- OdbcHandle.cs
- XmlSchemaProviderAttribute.cs
- WaitHandle.cs
- GetIndexBinder.cs
- HtmlFormParameterReader.cs
- WebPartAuthorizationEventArgs.cs
- StringSorter.cs
- XmlBaseWriter.cs
- ListView.cs
- PolyLineSegment.cs
- ADMembershipProvider.cs
- SerializationInfoEnumerator.cs
- AttributeTableBuilder.cs
- AmbiguousMatchException.cs
- KeyToListMap.cs
- ConfigXmlComment.cs
- OdbcDataAdapter.cs
- Misc.cs
- CollectionView.cs
- PlainXmlWriter.cs
- Queue.cs
- WindowsGraphics2.cs
- CuspData.cs
- Geometry3D.cs
- IPEndPointCollection.cs
- TemplateLookupAction.cs
- CqlWriter.cs
- IndexedGlyphRun.cs
- EdmFunctionAttribute.cs
- Config.cs
- RangeValidator.cs
- RoutedEvent.cs
- UserControlParser.cs
- WebPartCancelEventArgs.cs
- SqlLiftWhereClauses.cs
- MediaElementAutomationPeer.cs
- SystemInformation.cs
- FirstMatchCodeGroup.cs
- SessionEndingCancelEventArgs.cs
- PersonalizablePropertyEntry.cs
- SingleKeyFrameCollection.cs
- RootProfilePropertySettingsCollection.cs
- CodeExpressionCollection.cs
- DesignTimeSiteMapProvider.cs
- RIPEMD160Managed.cs
- EntryPointNotFoundException.cs
- DesignTimeVisibleAttribute.cs
- MessagePropertyVariants.cs
- ConfigXmlText.cs
- RotateTransform3D.cs
- XamlSerializationHelper.cs
- BindingContext.cs
- EventLogPermissionAttribute.cs
- ToolStripProgressBar.cs
- DependencyPropertyValueSerializer.cs
- NotImplementedException.cs
- TargetConverter.cs
- BigInt.cs
- CultureInfo.cs
- DynamicILGenerator.cs
- WebMethodAttribute.cs
- StandardCommands.cs
- TrustManagerPromptUI.cs
- wgx_render.cs
- RoleService.cs
- XmlSchemaExporter.cs
- EncoderBestFitFallback.cs
- EditorResources.cs
- DeclarativeExpressionConditionDeclaration.cs
- Number.cs
- TraceContextEventArgs.cs