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
- RepeaterItem.cs
- MessageBox.cs
- JsonGlobals.cs
- Decorator.cs
- DbConvert.cs
- OdbcEnvironment.cs
- ScaleTransform.cs
- UpdatableGenericsFeature.cs
- TextRange.cs
- HttpPostedFile.cs
- TextContainerHelper.cs
- HybridWebProxyFinder.cs
- PoisonMessageException.cs
- DataGridItemEventArgs.cs
- GlobalProxySelection.cs
- ParameterElement.cs
- TransformPatternIdentifiers.cs
- InternalDispatchObject.cs
- GridItemCollection.cs
- OracleException.cs
- Stack.cs
- MessageDescription.cs
- CompModSwitches.cs
- ListView.cs
- WindowsIPAddress.cs
- XmlWriter.cs
- GridPatternIdentifiers.cs
- SmtpCommands.cs
- SafePEFileHandle.cs
- XmlLanguage.cs
- MethodAccessException.cs
- NotCondition.cs
- DataReceivedEventArgs.cs
- MeshGeometry3D.cs
- PackageRelationship.cs
- DocumentViewer.cs
- PageThemeCodeDomTreeGenerator.cs
- MultiSelectRootGridEntry.cs
- ButtonBaseAdapter.cs
- SHA384.cs
- CaseInsensitiveHashCodeProvider.cs
- PropertyDescriptor.cs
- HttpServerVarsCollection.cs
- WindowsListViewGroup.cs
- CqlBlock.cs
- WebPartConnectionsCancelEventArgs.cs
- Point3DCollectionValueSerializer.cs
- InputDevice.cs
- ToolStripMenuItem.cs
- BrowserCapabilitiesFactoryBase.cs
- TextControl.cs
- CharAnimationUsingKeyFrames.cs
- ActivityBindForm.Designer.cs
- XmlTextReaderImplHelpers.cs
- RegularExpressionValidator.cs
- ToolStripSeparator.cs
- LassoSelectionBehavior.cs
- MenuItem.cs
- ProcessHostMapPath.cs
- EtwProvider.cs
- OperationContext.cs
- GroupBoxAutomationPeer.cs
- BezierSegment.cs
- HttpFileCollectionBase.cs
- PageSetupDialog.cs
- ImplicitInputBrush.cs
- TagMapCollection.cs
- Vector3dCollection.cs
- JsonEnumDataContract.cs
- CompilationPass2Task.cs
- remotingproxy.cs
- SQLRoleProvider.cs
- ActiveDocumentEvent.cs
- KeyFrames.cs
- DynamicContractTypeBuilder.cs
- XamlWriter.cs
- BuildProviderInstallComponent.cs
- PropertyEmitterBase.cs
- PassportAuthenticationModule.cs
- NullableConverter.cs
- DirectoryObjectSecurity.cs
- ObjectConverter.cs
- DataBoundControlHelper.cs
- NumberFunctions.cs
- PrivilegeNotHeldException.cs
- WindowExtensionMethods.cs
- RelationshipConverter.cs
- IResourceProvider.cs
- mansign.cs
- RegexMatch.cs
- EntityDataSourceSelectedEventArgs.cs
- CharConverter.cs
- HttpCapabilitiesBase.cs
- ButtonChrome.cs
- ClipboardData.cs
- SQLChars.cs
- ComAdminWrapper.cs
- OrthographicCamera.cs
- XmlUtf8RawTextWriter.cs
- StatusBar.cs