Sprache

TestTokenCreator Klasse

Definition

Eine Klasse, die für die Erstellung von Testtoken für die Verwendung in Komponententestimplementierungen abhängig von Microsoft verantwortlich ist. IdentityModel-Tokenüberprüfung.

public class TestTokenCreator
type TestTokenCreator = class
Public Class TestTokenCreator
Vererbung
TestTokenCreator

Beispiele

Im Folgenden finden Sie ein Beispiel dafür, wie diese Klasse mit einem gemeinsamen Testframework, Xunit, genutzt werden kann. Die Kernkonzepte gelten jedoch für Komponententests mit jedem Framework.

Im Beispiel wird eine Klasse, ClassWithMicrosoftIdentityModelDependency, dargestellt, die ValidateToken verfügbar macht, eine Methode, die die Microsoft aufruft. IdentityModel library and GetTokenValidationParameters which retrieves the TokenValidationParameters code under test actually uses. Beachten Sie, dass es wichtig ist, die Reale TokenValidationParameters zu verwenden, da dadurch die Komponententests tatsächlich bestätigen können, ob eine Lücke in der Validierung vorhanden ist (z. B. bestimmte wichtige Überprüfung ist deaktiviert, ValidateAudience, , ValidateIssuerusw.)

Im folgenden Codebeispiel sollte generateTokenToTest eine der Methoden dieser Klasse sein.

internal void AssertValidationException(Func{string} generateTokenToTest, Type innerExceptionType, string innerExceptionMessagePart)
{
    try
    {
        ClassWithMicrosoftIdentityModelDependency.ValidateToken(
            generateTokenToTest,
            ClassWithMicrosoftIdentityModelDependency.GetTokenValidationParameters());

        if (innerExceptionType != null || innerExceptionType != null)
            throw new TestException(
                string.Format(
                    "Expected an exception of type '{0}' containing '{1}' in the message.",
                    innerExceptionType,
                    innerExceptionMessagePart));
    }
    catch (Exception e)
    {
        Assert.Equal(typeof(SampleTestTokenValidationException), e.GetType());
        Assert.Equal(innerExceptionType, e.InnerException.GetType());

        if (!string.IsNullOrEmpty(innerExceptionMessagePart))
        {
            Assert.Contains(innerExceptionMessagePart, e.InnerException.Message);
        }
    }
}

[Fact]
public void TokenWithoutSignature()
{
    var testTokenCreator = new TestTokenCreator();
    AssertValidationException(
        testTokenCreator.CreateTokenWithNoSignature,
        typeof(ArgumentException),
        "IDX14111");
}

Hinweise

Microsoft. IdentityModel.SampleTests.SampleTokenValidationClassTests enthält Beispiele dafür, wie diese Klasse verwendet werden kann, um eine triviale Tokenüberprüfungsklasse zu überprüfen, die von Microsoft abhängt. Die Tokenüberprüfungsmethoden von IdentityModel.

Konstruktoren

Name Beschreibung
TestTokenCreator()

Eine Klasse, die für die Erstellung von Testtoken für die Verwendung in Komponententestimplementierungen abhängig von Microsoft verantwortlich ist. IdentityModel-Tokenüberprüfung.

Eigenschaften

Name Beschreibung
Audience

Ruft die Zielgruppe ab, die für die erstellten Token gestempelt werden soll, oder legt sie fest.

Issuer

Ruft den Aussteller ab, der für die erstellten Token gestempelt werden soll, oder legt diesen fest.

SigningCredentials

Ruft die Signierungsanmeldeinformationen ab, die zum Signieren der erstellten Token verwendet werden, oder legt diese fest.

Methoden

Name Beschreibung
CreateClaimsSetWithInstanceOverrides()

Erstellt einen Standardsatz von Ansprüchen basierend auf den Instanzwerten.

CreateDefaultValidToken()

Erstellt ein standardmäßig gültiges IssuerTesttoken basierend auf den Werten Audience und SigningCredentials Werten der Klasse.

CreateExpiredToken()

Erstellt ein JWS-Testtoken, das über seinen Ablauf liegt.

CreateJsonPayload(IDictionary<String,Object>)

Erstellt eine JSON-Nutzlast basierend auf dem übergebenen IDictionary<TKey,TValue>Anspruch.

CreateNotYetValidToken()

Erstellt ein JWS-Testtoken, das noch nicht gültig ist.

CreateToken(Dictionary<String,Object>)

Erstellt ein Token basierend auf dem übergebenen Dictionary<TKey,TValue>.

CreateToken(SecurityTokenDescriptor)

Erstellt ein Token basierend auf dem übergebenen SecurityTokenDescriptor.

CreateTokenDescriptorWithInstanceOverrides()

Erstellt einen Standardwert SecurityTokenDescriptor basierend auf den Instanzwerten.

CreateTokenWithBadAudience()

Erstellt ein JWS-Testtoken mit einer Zielgruppe, die nicht mit dem konfigurierten Instanzwert übereinstimmt.

CreateTokenWithBadIssuer()

Erstellt ein JWS-Testtoken mit einem Aussteller, der nicht mit dem konfigurierten Instanzwert übereinstimmt.

CreateTokenWithBadSignatureKey()

Erstellt ein JWS-Testtoken, das mit einem Schlüssel signiert ist, der nicht mit dem konfigurierten Instanzwert übereinstimmt.

CreateTokenWithFutureIssuedAt()

Erstellt ein JWS-Testtoken, das in Zukunft ausgestellt wird.

CreateTokenWithInvalidSignature()

Erstellt ein Testtoken mit einer Signatur, die nicht mit der Nutzlast übereinstimmt.

CreateTokenWithMissingAudience()

Erstellt ein JWS-Testtoken mit einem fehlenden Zielgruppenanspruch (aud).

CreateTokenWithMissingExpires()

Erstellt ein JWS-Testtoken mit einem fehlenden Ablaufzeitanspruch (Exp).

CreateTokenWithMissingIssuedAt()

Erstellt ein JWS-Testtoken mit einem fehlenden IssuedAt (iat)-Anspruch.

CreateTokenWithMissingIssuer()

Erstellt ein JWS-Testtoken mit einem fehlenden Ausstelleranspruch (Iss).

CreateTokenWithMissingKey()

Erstellt ein JWS-Testtoken ohne Signaturschlüssel (d. h. alg=none, no signature).

CreateTokenWithMissingNotBefore()

Erstellt ein JWS-Testtoken mit einem fehlenden NotBefore (nbf)-Anspruch.

CreateTokenWithNoSignature()

Erstellt ein JWS-Testtoken ohne Signatur.

Gilt für: