You've already forked linux-packaging-mono
							
							
		
			
	
	
		
			118 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			118 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|   | //----------------------------------------------------------------------------- | ||
|  | // Copyright (c) Microsoft Corporation.  All rights reserved. | ||
|  | //----------------------------------------------------------------------------- | ||
|  | 
 | ||
|  | namespace System.IdentityModel.Tokens | ||
|  | { | ||
|  |     using System.Collections; | ||
|  |     using System.Collections.Generic; | ||
|  |     using System.Collections.ObjectModel; | ||
|  |     using System.Text; | ||
|  |     using System.Xml.Serialization; | ||
|  |     using System.Xml; | ||
|  |     using System.Xml.Schema; | ||
|  |     using System.CodeDom; | ||
|  |     using System.Runtime.Serialization; | ||
|  |     using System.Globalization; | ||
|  |     using System.Threading; | ||
|  |     using System.IdentityModel.Selectors; | ||
|  |     using System.IdentityModel.Policy; | ||
|  |     using System.Reflection; | ||
|  |     using System.Security.Cryptography; | ||
|  |     using System.Security.Cryptography.X509Certificates; | ||
|  |     using System.IO; | ||
|  | 
 | ||
|  |     public class SamlSecurityToken : SecurityToken | ||
|  |     { | ||
|  |         SamlAssertion assertion; | ||
|  | 
 | ||
|  |         protected SamlSecurityToken() | ||
|  |         { | ||
|  |         } | ||
|  | 
 | ||
|  |         public SamlSecurityToken(SamlAssertion assertion) | ||
|  |         { | ||
|  |             Initialize(assertion); | ||
|  |         } | ||
|  | 
 | ||
|  |         protected void Initialize(SamlAssertion assertion) | ||
|  |         { | ||
|  |             if (assertion == null) | ||
|  |                 throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("assertion"); | ||
|  | 
 | ||
|  |             this.assertion = assertion; | ||
|  |             this.assertion.MakeReadOnly(); | ||
|  |         } | ||
|  | 
 | ||
|  |         public override string Id | ||
|  |         { | ||
|  |             get { return this.assertion.AssertionId; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public override ReadOnlyCollection<SecurityKey> SecurityKeys | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 return this.assertion.SecurityKeys; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         public SamlAssertion Assertion | ||
|  |         { | ||
|  |             get { return this.assertion; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public override DateTime ValidFrom | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 if (this.assertion.Conditions != null) | ||
|  |                 { | ||
|  |                     return this.assertion.Conditions.NotBefore; | ||
|  |                 } | ||
|  | 
 | ||
|  |                 return SecurityUtils.MinUtcDateTime; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         public override DateTime ValidTo | ||
|  |         { | ||
|  |             get | ||
|  |             { | ||
|  |                 if (this.assertion.Conditions != null) | ||
|  |                 { | ||
|  |                     return this.assertion.Conditions.NotOnOrAfter; | ||
|  |                 } | ||
|  | 
 | ||
|  |                 return SecurityUtils.MaxUtcDateTime; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         public override bool CanCreateKeyIdentifierClause<T>() | ||
|  |         { | ||
|  |             if (typeof(T) == typeof(SamlAssertionKeyIdentifierClause)) | ||
|  |                 return true; | ||
|  | 
 | ||
|  |             return false; | ||
|  |         } | ||
|  | 
 | ||
|  |         public override T CreateKeyIdentifierClause<T>() | ||
|  |         { | ||
|  |             if (typeof(T) == typeof(SamlAssertionKeyIdentifierClause)) | ||
|  |                 return new SamlAssertionKeyIdentifierClause(this.Id) as T; | ||
|  | 
 | ||
|  |             throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.UnableToCreateTokenReference))); | ||
|  |         } | ||
|  | 
 | ||
|  |         public override bool MatchesKeyIdentifierClause(SecurityKeyIdentifierClause keyIdentifierClause) | ||
|  |         { | ||
|  |             SamlAssertionKeyIdentifierClause samlKeyIdentifierClause = keyIdentifierClause as SamlAssertionKeyIdentifierClause; | ||
|  |             if (samlKeyIdentifierClause != null) | ||
|  |                 return samlKeyIdentifierClause.Matches(this.Id); | ||
|  | 
 | ||
|  |             return false; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  | } |