TestTokenCreator Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Classe responsabile della creazione di token di test da usare nelle implementazioni di unit test a seconda di Microsoft. Convalida del token IdentityModel.
public class TestTokenCreator
type TestTokenCreator = class
Public Class TestTokenCreator
- Ereditarietà
-
TestTokenCreator
Esempio
Di seguito è riportato un esempio di come questa classe può essere usata usando un framework di test comune, Xunit. I concetti di base saranno tuttavia applicabili agli unit test usando qualsiasi framework.
L'esempio immagina una classe ClassWithMicrosoftIdentityModelDependency, che espone ValidateToken, un metodo che chiama il Microsoft. Libreria IdentityModel e GetTokenValidationParameters che recupera effettivamente il TokenValidationParameters codice sottoposto a test. Si noti che è importante usare il valore reale TokenValidationParameters perché ciò consentirà agli unit test di confermare effettivamente se si verifica un gap nella convalida (ad esempio, una determinata convalida importante è disabilitata, ValidateAudience, e ValidateIssuercosì via).
Nell'esempio di codice seguente, generateTokenToTest deve essere uno dei metodi di questa classe.
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");
}
Commenti
Microsoft. IdentityModel.SampleTests.SampleTokenValidationClassTests contiene esempi di come questa classe può essere sfruttata per convalidare una classe di convalida dei token semplice che dipende da Microsoft. Metodi di convalida dei token di IdentityModel.
Costruttori
| Nome | Descrizione |
|---|---|
| TestTokenCreator() |
Classe responsabile della creazione di token di test da usare nelle implementazioni di unit test a seconda di Microsoft. Convalida del token IdentityModel. |
Proprietà
| Nome | Descrizione |
|---|---|
| Audience |
Ottiene o imposta l'indicatore Audience da stampare sui token creati. |
| Issuer |
Ottiene o imposta l'autorità emittente da stampare sui token creati. |
| SigningCredentials |
Ottiene o imposta le credenziali di firma utilizzate per firmare i token creati. |
Metodi
| Nome | Descrizione |
|---|---|
| CreateClaimsSetWithInstanceOverrides() |
Crea un set predefinito di attestazioni in base ai valori dell'istanza. |
| CreateDefaultValidToken() |
Crea un token di test valido predefinito basato sui valori e AudienceSigningCredentials della Issuerclasse . |
| CreateExpiredToken() |
Crea un token JWS di test che ha superato la scadenza. |
| CreateJsonPayload(IDictionary<String,Object>) |
Crea un payload JSON basato sull'attestazione passata IDictionary<TKey,TValue>. |
| CreateNotYetValidToken() |
Crea un token JWS di test che non è ancora valido. |
| CreateToken(Dictionary<String,Object>) |
Crea un token basato sull'oggetto passato Dictionary<TKey,TValue>. |
| CreateToken(SecurityTokenDescriptor) |
Crea un token basato sull'oggetto passato SecurityTokenDescriptor. |
| CreateTokenDescriptorWithInstanceOverrides() |
Crea un valore predefinito SecurityTokenDescriptor in base ai valori dell'istanza. |
| CreateTokenWithBadAudience() |
Crea un token JWS di test con un gruppo di destinatari che non corrisponde al valore dell'istanza configurato. |
| CreateTokenWithBadIssuer() |
Crea un token JWS di test con un'autorità emittente che non corrisponde al valore dell'istanza configurata. |
| CreateTokenWithBadSignatureKey() |
Crea un token JWS di test firmato con una chiave che non corrisponde al valore dell'istanza configurata. |
| CreateTokenWithFutureIssuedAt() |
Crea un token JWS di test che viene rilasciato in futuro. |
| CreateTokenWithInvalidSignature() |
Crea un token di test con una firma che non corrisponde al payload. |
| CreateTokenWithMissingAudience() |
Crea un token JWS di test con un'attestazione di destinatari mancante (aud). |
| CreateTokenWithMissingExpires() |
Crea un token JWS di test con un'attestazione scadenza mancante (exp). |
| CreateTokenWithMissingIssuedAt() |
Crea un token JWS di test con un'attestazione IssuedAt (iat) mancante. |
| CreateTokenWithMissingIssuer() |
Crea un token JWS di test con un'attestazione di autorità di certificazione mancante (iss). |
| CreateTokenWithMissingKey() |
Crea un token JWS di test senza una chiave di firma (ad esempio alg=none, nessuna firma). |
| CreateTokenWithMissingNotBefore() |
Crea un token JWS di test con un'attestazione NotBefore (nbf) mancante. |
| CreateTokenWithNoSignature() |
Crea un token JWS di test senza firma. |