//-----------------------------------------------------------------------
// <copyright file="WrappedSaml2AssertionKeyIdentifierClause.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------
namespace System.IdentityModel.Tokens
{
using System;
using System.Collections.Generic;
/// <summary>
/// This class wraps a Saml2AssertionKeyIdentifierClause and delegates to the wrapped clause.
/// It derives off the SamlAssertionKeyIdentifierClause to get around a specific bug in WCF
/// where the WCF runtime will call the Saml2SecurityToken to create a SamlAssertionKeyIdentifierClause.
/// </summary>
internal class WrappedSaml2AssertionKeyIdentifierClause : SamlAssertionKeyIdentifierClause
{
private Saml2AssertionKeyIdentifierClause clause;
/// <summary>
/// Creates an instance of <see cref="WrappedSaml2AssertionKeyIdentifierClause"/>
/// </summary>
/// <param name="clause">A <see cref="Saml2AssertionKeyIdentifierClause"/> to be wrapped.</param>
public WrappedSaml2AssertionKeyIdentifierClause(Saml2AssertionKeyIdentifierClause clause)
: base(clause.Id)
{
this.clause = clause;
}
/// <summary>
/// Gets a boolean that states if the clause can create a Key.
/// This returns false by default.
/// </summary>
public override bool CanCreateKey
{
get
{
return this.clause.CanCreateKey;
}
}
/// <summary>
/// Gets the wrapped <see cref="Saml2AssertionKeyIdentifierClause" />.
/// </summary>
public Saml2AssertionKeyIdentifierClause WrappedClause
{
get { return this.clause; }
}
/// <summary>
/// Creates a key from this clause type.
/// </summary>
/// <returns>A <see cref="SecurityKey"/></returns>
public override SecurityKey CreateKey()
{
return this.clause.CreateKey();
}
/// <summary>
/// Returns a value that indicates whether the key identifier for this instance
/// is equivalent to the specified key identifier clause.
/// </summary>
/// <param name="keyIdentifierClause">A <see cref="SecurityKeyIdentifierClause"/> to compare to.</param>
/// <returns>'True' if keyIdentifierClause matches this. 'False' otherwise.</returns>
public override bool Matches(SecurityKeyIdentifierClause keyIdentifierClause)
{
return this.clause.Matches(keyIdentifierClause);
}
}
}
|