/// <summary> /// Is Valid Oidc Authentication Response. /// </summary> public static void Validate(this AuthenticationResponse response, bool isImplicitFlow = false) { if (response == null) { new ArgumentNullException(nameof(response)); } (response as AuthorizationResponse).Validate(isImplicitFlow); if ((!response.IdToken.IsNullOrEmpty() || !response.AccessToken.IsNullOrEmpty()) && response.TokenType.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(response.TokenType), response.GetTypeName()); } if (isImplicitFlow && response.IdToken.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(response.IdToken), response.GetTypeName()); } response.IdToken.ValidateMaxLength(IdentityConstants.MessageLength.IdTokenMax, nameof(response.IdToken), response.GetTypeName()); response.AccessToken.ValidateMaxLength(IdentityConstants.MessageLength.AccessTokenMax, nameof(response.AccessToken), response.GetTypeName()); response.TokenType.ValidateMaxLength(IdentityConstants.MessageLength.TokenTypeMax, nameof(response.TokenType), response.GetTypeName()); }