Example #1
0
        public SelfHostRequestData(RouteData routeData, HttpRequestMessage request, ICookies cookies)
        {
            AddValues(new RouteDataValues(routeData));



            var querystring = request.RequestUri.ParseQueryString();

            AddValues("Querystring", new NamedKeyValues(querystring));

            var formData = request.Content.IsFormData() ? request.Content.ReadAsFormDataAsync().Result : new NameValueCollection();

            AddValues(RequestDataSource.Request.ToString(), new NamedKeyValues(formData));

            var headers = AggregateKeyValues.For(new HeaderKeyValues(request.Headers),
                                                 new HeaderKeyValues(request.Content.Headers));

            AddValues(RequestDataSource.Header.ToString(), headers);

            Func <string, IEnumerable <string>, bool> ignoreCaseKeyFinder = (key, keys) => keys.Contains(key, StringComparer.InvariantCultureIgnoreCase);
            var values      = new SimpleKeyValues(key => cookies.Get(key).Value, () => cookies.Request.Select(x => x.Name), ignoreCaseKeyFinder);
            var valueSource = new FlatValueSource <object>(values, RequestDataSource.Cookie.ToString());

            AddValues(valueSource);
        }
        public bool Validate(string salt)
        {
            var applicationPath = _fubuApplicationFiles.RootPath;
            var fieldName       = _tokenProvider.GetTokenName();
            var cookieName      = _tokenProvider.GetTokenName(applicationPath);

            var cookie = _cookies.Get(cookieName);

            if (cookie == null || string.IsNullOrEmpty(cookie.Value))
            {
                return(false);
            }

            var cookieToken = _serializer.Deserialize(HttpUtility.UrlDecode(cookie.Value));

            var formValue = _requestData.ValuesFor(RequestDataSource.Header).Get(fieldName) as string
                            ??
                            _requestData.ValuesFor(RequestDataSource.Request).Get(fieldName) as string;

            if (formValue.IsEmpty())
            {
                return(false);
            }

            var formToken = _serializer.Deserialize(formValue);

            if (!string.Equals(cookieToken.Value, formToken.Value, StringComparison.Ordinal))
            {
                return(false);
            }

            var currentUsername = AntiForgeryData.GetUsername(Thread.CurrentPrincipal);

            if (!string.Equals(formToken.Username, currentUsername, StringComparison.OrdinalIgnoreCase))
            {
                return(false);
            }

            if (!string.Equals(salt ?? string.Empty, formToken.Salt, StringComparison.Ordinal))
            {
                return(false);
            }

            return(true);
        }
Example #3
0
        public AntiForgeryData GetCookieToken()
        {
            var             applicationPath = _fubuApplicationFiles.RootPath;
            string          name            = _tokenProvider.GetTokenName(applicationPath);
            Cookie          cookie          = _cookies.Get(name);
            AntiForgeryData cookieToken     = null;

            if (cookie != null)
            {
                try
                {
                    cookieToken = _serializer.Deserialize(HttpUtility.UrlDecode(cookie.Value));
                }
                catch (FubuException)
                {
                    // TODO -- log this.  Need a generic tracing mechanism
                }
            }

            return(cookieToken ?? _tokenProvider.GenerateToken());
        }
Example #4
0
 public Cookie Current()
 {
     return(_cookies.Get(_settings.Name));
 }
Example #5
0
        public bool Has(string key)
        {
            Cookie cookie = _cookies.Get(key);

            return(cookie != null && cookie.Value.IsNotEmpty());
        }
Example #6
0
 public string get_cookie_info(CookieInfo info)
 {
     return(_cookies.Get(CookieName).Value);
 }
Example #7
0
        public SelfHostRequestData(RouteData routeData, HttpRequestMessage request, ICookies cookies)
        {
            AddValues(new RouteDataValues(routeData));

            var querystring = request.RequestUri.ParseQueryString();
            AddValues("Querystring", new NamedKeyValues(querystring));

            var formData = request.Content.IsFormData() ? request.Content.ReadAsFormDataAsync().Result : new NameValueCollection();

            AddValues(RequestDataSource.Request.ToString(), new NamedKeyValues(formData));

            var headers = AggregateKeyValues.For(new HeaderKeyValues(request.Headers),
                                                 new HeaderKeyValues(request.Content.Headers));
            AddValues(RequestDataSource.Header.ToString(), headers);

            Func<string, IEnumerable<string>, bool> ignoreCaseKeyFinder = (key, keys) => keys.Contains(key, StringComparer.InvariantCultureIgnoreCase);
            var values = new SimpleKeyValues(key => cookies.Get(key).Value, () => cookies.Request.Select(x => x.Name), ignoreCaseKeyFinder);
            var valueSource = new FlatValueSource<object>(values, RequestDataSource.Cookie.ToString());

            AddValues(valueSource);
        }