e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
89 lines
3.2 KiB
C#
89 lines
3.2 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="UrlMapping.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.Web.Configuration {
|
|
using System;
|
|
using System.Xml;
|
|
using System.Configuration;
|
|
using System.Collections.Specialized;
|
|
using System.Collections;
|
|
using System.Globalization;
|
|
using System.IO;
|
|
using System.Text;
|
|
using System.ComponentModel;
|
|
using System.Web.Util;
|
|
using System.Diagnostics;
|
|
using System.Security.Permissions;
|
|
|
|
public sealed class UrlMapping : ConfigurationElement {
|
|
private static ConfigurationPropertyCollection _properties;
|
|
|
|
#region Property Declarations
|
|
private static readonly ConfigurationProperty _propUrl =
|
|
new ConfigurationProperty("url",
|
|
typeof(string),
|
|
null,
|
|
StdValidatorsAndConverters.WhiteSpaceTrimStringConverter,
|
|
new CallbackValidator(typeof(string), ValidateUrl),
|
|
ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey);
|
|
|
|
private static readonly ConfigurationProperty _propMappedUrl =
|
|
new ConfigurationProperty("mappedUrl",
|
|
typeof(string),
|
|
null,
|
|
StdValidatorsAndConverters.WhiteSpaceTrimStringConverter,
|
|
StdValidatorsAndConverters.NonEmptyStringValidator,
|
|
ConfigurationPropertyOptions.IsRequired);
|
|
#endregion
|
|
|
|
static UrlMapping() {
|
|
// Property initialization
|
|
_properties = new ConfigurationPropertyCollection();
|
|
_properties.Add(_propUrl);
|
|
_properties.Add(_propMappedUrl);
|
|
}
|
|
|
|
internal UrlMapping() {
|
|
}
|
|
|
|
public UrlMapping(string url, string mappedUrl) {
|
|
base[_propUrl] = url;
|
|
base[_propMappedUrl] = mappedUrl;
|
|
}
|
|
|
|
protected override ConfigurationPropertyCollection Properties {
|
|
get {
|
|
return _properties;
|
|
}
|
|
}
|
|
|
|
[ConfigurationProperty("url", IsRequired = true, IsKey = true)]
|
|
public string Url {
|
|
get {
|
|
return (string)base[_propUrl];
|
|
}
|
|
}
|
|
|
|
[ConfigurationProperty("mappedUrl", IsRequired = true)]
|
|
public string MappedUrl {
|
|
get {
|
|
return (string)base[_propMappedUrl];
|
|
}
|
|
}
|
|
|
|
static private void ValidateUrl(object value) {
|
|
// The Url cannot be an empty string. Use the std validator for that
|
|
StdValidatorsAndConverters.NonEmptyStringValidator.Validate(value);
|
|
|
|
string url = (string)value;
|
|
|
|
if (!UrlPath.IsAppRelativePath(url)) {
|
|
throw new ConfigurationErrorsException(SR.GetString(SR.UrlMappings_only_app_relative_url_allowed, url));
|
|
}
|
|
}
|
|
}
|
|
}
|