TestTokenCreator Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Een klasse die verantwoordelijk is voor het maken van testtokens voor gebruik in implementaties van eenheidstests, afhankelijk van Microsoft. IdentityModel-tokenvalidatie.
public class TestTokenCreator
type TestTokenCreator = class
Public Class TestTokenCreator
- Overname
-
TestTokenCreator
Voorbeelden
Hieronder ziet u een voorbeeld van hoe deze klasse kan worden gebruikt met behulp van een gemeenschappelijk testframework, Xunit. De kernconcepten zijn echter van toepassing op eenheidstests met behulp van elk framework.
In het voorbeeld wordt een klasse, ClassWithMicrosoftIdentityModelDependency, voorgesteld, die ValidateToken beschikbaar maakt, een methode die de Microsoft aanroept. IdentityModel-bibliotheek en GetTokenValidationParameters waarmee de TokenValidationParameters code onder test daadwerkelijk wordt opgehaald. Houd er rekening mee dat het belangrijk is om de echte TokenValidationParameters waarde te gebruiken, omdat hierdoor de eenheidstests daadwerkelijk kunnen bevestigen of er sprake is van een hiaat in de validatie (bijvoorbeeld bepaalde belangrijke validatie is uitgeschakeld, ValidateAudience, ValidateIssuerenzovoort)
In het volgende codevoorbeeld moet generateTokenToTest een van de methoden uit deze klasse zijn.
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");
}
Opmerkingen
Microsoft. IdentityModel.SampleTests.SampleTokenValidationClassTests bevat voorbeelden voor hoe deze klasse kan worden gebruikt om een triviale tokenvalidatieklasse te valideren die afhankelijk is van Microsoft. De tokenvalidatiemethoden van IdentityModel.
Constructors
| Name | Description |
|---|---|
| TestTokenCreator() |
Een klasse die verantwoordelijk is voor het maken van testtokens voor gebruik in implementaties van eenheidstests, afhankelijk van Microsoft. IdentityModel-tokenvalidatie. |
Eigenschappen
| Name | Description |
|---|---|
| Audience |
Hiermee wordt de doelgroep opgehaald of ingesteld op de tokens die zijn gemaakt. |
| Issuer |
Hiermee wordt de verlener opgehaald of ingesteld op de tokens die zijn gemaakt. |
| SigningCredentials |
Hiermee haalt u de SigningCredentials op die worden gebruikt om de gemaakte tokens te ondertekenen. |
Methoden
| Name | Description |
|---|---|
| CreateClaimsSetWithInstanceOverrides() |
Hiermee maakt u een standaardset claims op basis van de exemplaarwaarden. |
| CreateDefaultValidToken() |
Hiermee maakt u een standaard geldig testtoken op basis van de klasse IssuerAudience en SigningCredentials waarden. |
| CreateExpiredToken() |
Hiermee maakt u een test-JWS-token dat is verlopen. |
| CreateJsonPayload(IDictionary<String,Object>) |
Hiermee maakt u een JSON-nettolading op basis van de doorgegeven IDictionary<TKey,TValue>claims. |
| CreateNotYetValidToken() |
Hiermee maakt u een JWS-testtoken dat nog niet geldig is. |
| CreateToken(Dictionary<String,Object>) |
Hiermee maakt u een token op basis van de doorgegeven Dictionary<TKey,TValue>. |
| CreateToken(SecurityTokenDescriptor) |
Hiermee maakt u een token op basis van de doorgegeven SecurityTokenDescriptor. |
| CreateTokenDescriptorWithInstanceOverrides() |
Hiermee maakt u een standaardwaarde SecurityTokenDescriptor op basis van de exemplaarwaarden. |
| CreateTokenWithBadAudience() |
Hiermee maakt u een JWS-testtoken met een doelgroep die niet overeenkomt met de geconfigureerde instantiewaarde. |
| CreateTokenWithBadIssuer() |
Hiermee maakt u een JWS-testtoken met een verlener die niet overeenkomt met de geconfigureerde instantiewaarde. |
| CreateTokenWithBadSignatureKey() |
Hiermee maakt u een JWS-testtoken dat is ondertekend met een sleutel die niet overeenkomt met de geconfigureerde instantiewaarde. |
| CreateTokenWithFutureIssuedAt() |
Hiermee maakt u een JWS-testtoken dat in de toekomst wordt uitgegeven. |
| CreateTokenWithInvalidSignature() |
Hiermee maakt u een testtoken met een handtekening die niet overeenkomt met de nettolading. |
| CreateTokenWithMissingAudience() |
Hiermee maakt u een JWS-testtoken met een ontbrekende doelgroepclaim (aud). |
| CreateTokenWithMissingExpires() |
Hiermee maakt u een test-JWS-token met een ontbrekende verlooptijd (exp)-claim. |
| CreateTokenWithMissingIssuedAt() |
Hiermee maakt u een JWS-testtoken met een ontbrekende IssuedAt-claim (iat). |
| CreateTokenWithMissingIssuer() |
Hiermee maakt u een test-JWS-token met een ontbrekende verlenerclaim (iss). |
| CreateTokenWithMissingKey() |
Hiermee maakt u een JWS-testtoken zonder ondertekeningssleutel (d.w.w.v. alg=none, geen handtekening). |
| CreateTokenWithMissingNotBefore() |
Hiermee maakt u een JWS-testtoken met een ontbrekende NotBefore-claim (nbf). |
| CreateTokenWithNoSignature() |
Hiermee maakt u een JWS-testtoken zonder handtekening. |