コード例 #1
0
        /// <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());
        }