You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			99 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| //-----------------------------------------------------------------------
 | |
| // <copyright file="Saml2Id.cs" company="Microsoft">
 | |
| //     Copyright (c) Microsoft Corporation.  All rights reserved.
 | |
| // </copyright>
 | |
| //-----------------------------------------------------------------------
 | |
| 
 | |
| namespace System.IdentityModel.Tokens
 | |
| {
 | |
|     using System;
 | |
|     using System.Xml;
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Represents the identifier used for SAML assertions.
 | |
|     /// </summary>
 | |
|     /// <details>
 | |
|     /// This identifier should be unique per [Saml2Core, 1.3.4] 
 | |
|     /// and must fit the NCName xml schema definition, which is to say that
 | |
|     /// it must begin with a letter or underscore. 
 | |
|     /// </details>
 | |
|     public class Saml2Id
 | |
|     {
 | |
|         private string value;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Creates a new ID value based on a GUID.
 | |
|         /// </summary>
 | |
|         public Saml2Id()
 | |
|             : this(System.IdentityModel.UniqueId.CreateRandomId())
 | |
|         {
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Creates a new ID whose value is the given string.
 | |
|         /// </summary>
 | |
|         /// <param name="value">The Saml2 Id.</param>
 | |
|         /// <exception cref="ArgumentException">If the value is not a valid NCName.</exception>
 | |
|         public Saml2Id(string value)
 | |
|         {
 | |
|             if (string.IsNullOrEmpty(value))
 | |
|             {
 | |
|                 throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value");
 | |
|             }
 | |
| 
 | |
|             try
 | |
|             {
 | |
|                 this.value = XmlConvert.VerifyNCName(value);
 | |
|             }
 | |
|             catch (XmlException e)
 | |
|             {
 | |
|                 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
 | |
|                     new ArgumentException(SR.GetString(SR.ID4128), "value", e));
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets the identifier string.
 | |
|         /// </summary>
 | |
|         public string Value
 | |
|         {
 | |
|             get { return this.value; }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Compares two <see cref="Saml2Id"/> for equality.
 | |
|         /// </summary>
 | |
|         /// <param name="obj">Object to campare to.</param>
 | |
|         /// <returns>True if this equals object.  False otherwise.</returns>
 | |
|         public override bool Equals(object obj)
 | |
|         {
 | |
|             if (Object.ReferenceEquals(this, obj))
 | |
|             {
 | |
|                 return true;
 | |
|             }
 | |
| 
 | |
|             Saml2Id other = obj as Saml2Id;
 | |
| #pragma warning suppress 56506 // PreSharp thinks other can be null-dereffed here
 | |
|             return (null != other) && StringComparer.Ordinal.Equals(this.value, other.Value);
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets the hash code for the <see cref="Saml2Id"/> as an integer. 
 | |
|         /// </summary>
 | |
|         /// <returns>The hash code for this object.</returns>
 | |
|         public override int GetHashCode()
 | |
|         {
 | |
|             return this.value.GetHashCode();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets the <see cref="Saml2Id"/> in text format.
 | |
|         /// </summary>
 | |
|         /// <returns>The string representation of this object.</returns>
 | |
|         public override string ToString()
 | |
|         {
 | |
|             return this.value;
 | |
|         }
 | |
|     }
 | |
| }
 |