e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
109 lines
3.4 KiB
C#
109 lines
3.4 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="WebResourceAttribute.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.Web.UI {
|
|
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using System.Web.Util;
|
|
|
|
|
|
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple=true)]
|
|
public sealed class WebResourceAttribute : Attribute {
|
|
|
|
private string _contentType;
|
|
private bool _performSubstitution;
|
|
private string _webResource;
|
|
private string _cdnPath;
|
|
private string _cdnPathSecureConnection;
|
|
private bool _cdnSupportsSecureConnection;
|
|
|
|
internal const string _microsoftCdnBasePath = "http://ajax.aspnetcdn.com/ajax/4.6/1/";
|
|
|
|
public WebResourceAttribute(string webResource, string contentType) {
|
|
if (String.IsNullOrEmpty(webResource)) {
|
|
throw ExceptionUtil.ParameterNullOrEmpty("webResource");
|
|
}
|
|
|
|
if (String.IsNullOrEmpty(contentType)) {
|
|
throw ExceptionUtil.ParameterNullOrEmpty("contentType");
|
|
}
|
|
|
|
_contentType = contentType;
|
|
_webResource = webResource;
|
|
_performSubstitution = false;
|
|
}
|
|
|
|
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId="Cdn", Justification="Stands for Content Delivery Network.")]
|
|
public string CdnPath {
|
|
get {
|
|
return _cdnPath ?? String.Empty;
|
|
}
|
|
set {
|
|
_cdnPath = value;
|
|
}
|
|
}
|
|
|
|
public string LoadSuccessExpression {
|
|
get;
|
|
set;
|
|
}
|
|
|
|
internal string CdnPathSecureConnection {
|
|
get {
|
|
if (_cdnPathSecureConnection == null) {
|
|
string cdnPath = CdnPath;
|
|
if (String.IsNullOrEmpty(cdnPath) || !CdnSupportsSecureConnection || !cdnPath.StartsWith("http://", StringComparison.OrdinalIgnoreCase)) {
|
|
cdnPath = String.Empty;
|
|
}
|
|
else {
|
|
// convert http to https
|
|
cdnPath = "https" + cdnPath.Substring(4);
|
|
}
|
|
_cdnPathSecureConnection = cdnPath;
|
|
}
|
|
return _cdnPathSecureConnection;
|
|
}
|
|
}
|
|
|
|
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Cdn", Justification = "Stands for Content Delivery Network.")]
|
|
public bool CdnSupportsSecureConnection {
|
|
get {
|
|
return _cdnSupportsSecureConnection;
|
|
}
|
|
set {
|
|
_cdnSupportsSecureConnection = value;
|
|
}
|
|
}
|
|
|
|
public string ContentType {
|
|
get {
|
|
return _contentType;
|
|
}
|
|
}
|
|
|
|
|
|
public bool PerformSubstitution {
|
|
get {
|
|
return _performSubstitution;
|
|
}
|
|
set {
|
|
_performSubstitution = value;
|
|
}
|
|
}
|
|
|
|
|
|
public string WebResource {
|
|
get {
|
|
return _webResource;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|