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
- CharUnicodeInfo.cs
- App.cs
- IntranetCredentialPolicy.cs
- DomainUpDown.cs
- FileSecurity.cs
- CodeEntryPointMethod.cs
- SQLBoolean.cs
- TaskForm.cs
- FrameworkContextData.cs
- TemplateBaseAction.cs
- EncryptedType.cs
- FileUpload.cs
- DataObjectSettingDataEventArgs.cs
- TableLayoutRowStyleCollection.cs
- StringCollection.cs
- NamespaceMapping.cs
- VariableQuery.cs
- MethodImplAttribute.cs
- MenuAdapter.cs
- DoubleLinkList.cs
- DataColumnChangeEvent.cs
- GridViewRowCollection.cs
- RectAnimationUsingKeyFrames.cs
- OleServicesContext.cs
- ContainerCodeDomSerializer.cs
- Asn1IntegerConverter.cs
- OpacityConverter.cs
- NameValueFileSectionHandler.cs
- CryptoApi.cs
- ClientRuntimeConfig.cs
- BCLDebug.cs
- NonClientArea.cs
- SecureUICommand.cs
- ReadOnlyCollectionBase.cs
- ScrollPattern.cs
- SymLanguageVendor.cs
- cookie.cs
- DetailsViewUpdateEventArgs.cs
- Page.cs
- TrackBar.cs
- DataGridViewCellStyleEditor.cs
- FontFamilyConverter.cs
- ScriptControl.cs
- DuplicateWaitObjectException.cs
- GridViewDeleteEventArgs.cs
- ClientSideQueueItem.cs
- OverrideMode.cs
- NavigationPropertyAccessor.cs
- ProfilePropertySettings.cs
- XmlNodeChangedEventArgs.cs
- StateInitializationDesigner.cs
- DataGridColumn.cs
- SurrogateSelector.cs
- RequestCachePolicy.cs
- GridViewEditEventArgs.cs
- StreamingContext.cs
- TextTreeTextNode.cs
- SecurityResources.cs
- XmlBinaryReader.cs
- DrawingAttributes.cs
- CellPartitioner.cs
- DataMemberListEditor.cs
- RegexRunner.cs
- Brush.cs
- AsyncContentLoadedEventArgs.cs
- CompressEmulationStream.cs
- ISO2022Encoding.cs
- ExtenderProvidedPropertyAttribute.cs
- TemplateContainer.cs
- FunctionQuery.cs
- ConstraintEnumerator.cs
- MimePart.cs
- AuthenticationManager.cs
- DataTablePropertyDescriptor.cs
- PolygonHotSpot.cs
- TableLayoutSettingsTypeConverter.cs
- AVElementHelper.cs
- FlatButtonAppearance.cs
- DocumentPageViewAutomationPeer.cs
- FromReply.cs
- DesignConnection.cs
- DiscoveryCallbackBehavior.cs
- XmlSchemaExternal.cs
- ConvertBinder.cs
- FixedPageAutomationPeer.cs
- PropertyChangedEventArgs.cs
- ConnectionsZone.cs
- RuntimeWrappedException.cs
- DesignBindingConverter.cs
- XmlFormatExtensionPointAttribute.cs
- StrokeFIndices.cs
- PointLight.cs
- TableLayoutStyleCollection.cs
- FastEncoder.cs
- EdmSchemaError.cs
- VirtualPathUtility.cs
- WebPartEditorApplyVerb.cs
- WebRequestModulesSection.cs
- SystemInfo.cs
- TextPenaltyModule.cs