/// <summary>
        /// Evaluates whether the request is authorized based on the status of the specified cookie and value.
        /// </summary>
        /// <param name="httpContext"></param>
        /// <returns></returns>
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            string name, value;

#if DEBUG
            if (AuthorizeInDebugMode)
            {
                return(true);
            }
#endif

            name  = !string.IsNullOrEmpty(CookieName) ? CookieName : ConfigurationManager.AppSettings[CookieNameAppSettingKey];
            value = !string.IsNullOrEmpty(CookieValue) ? CookieValue : ConfigurationManager.AppSettings[CookieValueAppSettingKey];

            if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(value))
            {
                throw new InvalidOperationException(string.Format("A '{0}' requires a cookie name and cookie value. Either use the explicit value properties or the app setting key properties.", this.GetType().ToString()));
            }

            return(Cookies.CookieHasValue(name, value));
        }