Esempio n. 1
0
        public override async Task WriteResponseBodyAsync(OutputFormatterWriteContext context, Encoding selectedEncoding)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            string callback;

            if (IsJsonpRequest(context.HttpContext.Request, _callbackQueryParameter, out callback))
            {
                if (!CallbackValidator.IsValid(callback))
                {
                    throw new InvalidOperationException($"Callback '{callback}' is invalid!");
                }

                using (var writer = context.WriterFactory(context.HttpContext.Response.Body, selectedEncoding))
                {
                    // the /**/ is a specific security mitigation for "Rosetta Flash JSONP abuse"
                    // the typeof check is just to reduce client error noise
                    var str = "/**/ typeof " + callback + " === 'function' && " + callback + "(";
                    str += context.Object + ");";
                    writer.Write("/**/ typeof " + callback + " === 'function' && " + callback + "(");
                    writer.Flush();
                    _jsonMediaTypeFormatter.WriteObject(writer, context.Object);
                    writer.Write(");");
                    await writer.FlushAsync();
                }
            }
            else
            {
                await _jsonMediaTypeFormatter.WriteResponseBodyAsync(context, selectedEncoding);
            }
        }
Esempio n. 2
0
        public void CanValidate()
        {
            CallbackValidator v = new CallbackValidator(typeof(int), success);

            Assert.False(v.CanValidate(typeof(string)));
            Assert.True(v.CanValidate(typeof(int)));
            Assert.False(v.CanValidate(typeof(object)));
        }
Esempio n. 3
0
        public void TestSuccess()
        {
            hit_success = false;
            CallbackValidator v = new CallbackValidator(typeof(int), success);

            v.Validate(5);

            Assert.True(hit_success, "A1");
        }
Esempio n. 4
0
        public void TestFailure2()
        {
            hit_failure = false;
            CallbackValidator v = new CallbackValidator(typeof(int), failure);

            try {
                v.Validate(5);
            }
            catch { }
            finally {
                Assert.IsTrue(hit_failure, "A1");
            }
        }
Esempio n. 5
0
        public PasswordUpdateDialogViewModel(IValidate <SecureString> originalValidator, IValidate <SecureString> confirmValidator)
        {
            SuccessEnableCallback = defaultEnable =>
                                    (Password.HasErrors || ConfirmPassword.HasErrors) == false;

            Password.Validator = originalValidator;
            if (confirmValidator is NullValidator <SecureString> )
            {
                confirmValidator = new CallbackValidator <SecureString>(o =>
                                                                        Password.Password.Length != 0 && Perform.SecureStringCompare(Password.Password, ConfirmPassword.Password) ?
                                                                        new OperationResult() :
                                                                        new OperationResult(new[] { new ValidationFailedException("Both fields must match.") })
                                                                        );
            }
            ConfirmPassword.Validator = confirmValidator;

            Password.PropertyChanged        += Password_PropertyChanged;
            ConfirmPassword.PropertyChanged += Password_PropertyChanged;

            Password.RunValidation();
            ConfirmPassword.RunValidation();
        }
Esempio n. 6
0
        public void TestFailure1()
        {
            CallbackValidator v = new CallbackValidator(typeof(int), failure);

            Assert.Throws <Exception>(() => v.Validate(5));
        }
Esempio n. 7
0
 public void NullType()
 {
     CallbackValidator v = new CallbackValidator(null, success);
 }
Esempio n. 8
0
 public void NullCallback()
 {
     CallbackValidator v = new CallbackValidator(typeof(int), null);
 }
 public void IsValid(string callback, bool isValid)
 {
     Assert.That(CallbackValidator.IsValid(callback), Is.EqualTo(isValid));
 }
Esempio n. 10
0
        public void TestFailure1()
        {
            CallbackValidator v = new CallbackValidator(typeof(int), failure);

            v.Validate(5);
        }