public void TestCookie()
        {
            const string CookieName = "ASP.NET_SessionId";

            var configurationSection = new MaskedValuesConfigurationSection();
            configurationSection.RemoveAspxAuth = false;
            configurationSection.ReplacementText = "OBSCURED";
            configurationSection.Cookies.Add(new MaskedItemElement(CookieName));

            using (HttpSimulator simulator = new HttpSimulator("/", @"c:\inetpub\"))
            {
                simulator.SetCookies(Cookies)
                         .SimulateRequest(new Uri("http://localhost/"));

                var error = new Error(new HttpRequestValidationException(), HttpContext.Current);

                Assert.IsNotNull(HttpContext.Current.Request.Cookies[CookieName]);

                ErrorHelper.Obscure(error, configurationSection);

                Assert.AreEqual(configurationSection.ReplacementText, error.Cookies[CookieName]);

                Assert.AreNotEqual(configurationSection.ReplacementText, error.Cookies[MaskedValuesConfigurationSection.AspxAuthCookie]);
            }
        }
 public MaskedXmlFileErrorLog(string logPath)
     : base(logPath)
 {
     this._obfuscationConfiguration = (MaskedValuesConfigurationSection)ElmahConfiguration.GetSubsection(MaskedValuesConfigurationSection.SectionName);
     if (this._obfuscationConfiguration == null)
     {
         this._obfuscationConfiguration = new MaskedValuesConfigurationSection();
     }
 }
 public MaskedXmlFileErrorLog(IDictionary config)
     : base(config)
 {
     this._obfuscationConfiguration = (MaskedValuesConfigurationSection)ElmahConfiguration.GetSubsection(MaskedValuesConfigurationSection.SectionName);
     if (this._obfuscationConfiguration == null)
     {
         this._obfuscationConfiguration = new MaskedValuesConfigurationSection();
     }
 }
 public MaskedSqlErrorLog(string connectionString)
     : base(connectionString)
 {
     this._obfuscationConfiguration = (MaskedValuesConfigurationSection)ElmahConfiguration.GetSubsection(MaskedValuesConfigurationSection.SectionName);
     if (this._obfuscationConfiguration == null)
     {
         this._obfuscationConfiguration = new MaskedValuesConfigurationSection();
     }
 }
        public void TestAspxAuth()
        {
            var configurationSection = new MaskedValuesConfigurationSection();
            configurationSection.RemoveAspxAuth = true;
            configurationSection.ReplacementText = "OBSCURED";

            using (HttpSimulator simulator = new HttpSimulator("/", @"c:\inetpub\"))
            {
                simulator.SetCookies(Cookies)
                         .SimulateRequest(new Uri("http://localhost/"));

                var error = new Error(new HttpRequestValidationException(), HttpContext.Current);

                ErrorHelper.Obscure(error, configurationSection);

                Assert.AreEqual(configurationSection.ReplacementText, error.Cookies[MaskedValuesConfigurationSection.AspxAuthCookie]);
            }
        }
        public void TestFormVariable()
        {
            const string FormVariable = "Username";

            var configurationSection = new MaskedValuesConfigurationSection();
            configurationSection.RemoveAspxAuth = false;
            configurationSection.ReplacementText = "OBSCURED";
            configurationSection.FormVariables.Add(new MaskedItemElement(FormVariable));

            using (HttpSimulator simulator = new HttpSimulator("/", @"c:\inetpub\"))
            {
                simulator.SetFormVariable(FormVariable, "Admin").SimulateRequest(new Uri("http://localhost/"));

                var error = new Error(new HttpRequestValidationException(), HttpContext.Current);

                Assert.IsNotNull(HttpContext.Current.Request.Form[FormVariable]);

                ErrorHelper.Obscure(error, configurationSection);

                Assert.AreEqual(configurationSection.ReplacementText, error.Form[FormVariable]);
            }
        }
        public void FormValueDoesNotExistTest()
        {
            const string FormValue = "RandomFormValue";

            var configurationSection = new MaskedValuesConfigurationSection();
            configurationSection.RemoveAspxAuth = false;
            configurationSection.ReplacementText = "OBSCURED";
            configurationSection.FormVariables.Add(new MaskedItemElement(FormValue));

            using (HttpSimulator simulator = new HttpSimulator("/", @"c:\inetpub\"))
            {
                simulator.SimulateRequest(new Uri("http://localhost/"), HttpVerb.GET);

                var error = new Error(new HttpRequestValidationException(), HttpContext.Current);

                Assert.IsNull(error.Form[FormValue]);
            }
        }
		public MaskedMemoryErrorLog(int size)
		{
			if (size < 0 || size > MemoryErrorLog.MaximumSize)
			{
				throw new ArgumentOutOfRangeException("size", size, string.Format("Size must be between 0 and {0}.", MemoryErrorLog.MaximumSize));
			}
			this._size = size;

            this._obfuscationConfiguration = (MaskedValuesConfigurationSection)ElmahConfiguration.GetSubsection(MaskedValuesConfigurationSection.SectionName);
            if (this._obfuscationConfiguration == null)
            {
                this._obfuscationConfiguration = new MaskedValuesConfigurationSection();
            }
		}
        public MaskedMemoryErrorLog(IDictionary config)
		{
			if (config == null)
			{
				this._size = MemoryErrorLog.DefaultSize;
				return;
			}
			string text = config["size"] != null ? (string)config["size"] : string.Empty;
			if (text.Length == 0)
			{
				this._size = MemoryErrorLog.DefaultSize;
				return;
			}
			this._size = Convert.ToInt32(text, CultureInfo.InvariantCulture);
			this._size = Math.Max(0, Math.Min(MemoryErrorLog.MaximumSize, this._size));

            this._obfuscationConfiguration = (MaskedValuesConfigurationSection)ElmahConfiguration.GetSubsection(MaskedValuesConfigurationSection.SectionName);
            if (this._obfuscationConfiguration == null)
            {
                this._obfuscationConfiguration = new MaskedValuesConfigurationSection();
            }
		}