我试图创建ActionFilter来替换HTML中的某些文本。基本上,当服务器使用SSL时,我想用引用直接将我的CDN(http://cdn.example.com)引用替换为我的服务器(https://www.example.com)。因此,结构是这样的(我假设OnResultExecuted是我应该开始):如何使用ASP.NET MVC ActionFilter替换呈现的HTML中的URL
public class CdnSslAttribute : ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
if(filterContext.HttpContext.Request.IsSecureConnection)
{
// when the connection is secure,
// somehow replace all instances of http://cdn.example.com
// with https://www.example.com
}
}
}
这将在我的安全控制器一起使用:
[CdnSsl]
public class SecureController : Controller
{
}
我想这样做的原因是我的CDN不支持SSL。 Master网页中有CDN资源的参考资料。例如:
<link href="http://cdn.example.com/Content/base.css" rel="stylesheet" type="text/css" />
这一切都取决于开发人员是否正在处理源代码不是“自己”。我正在开发一个系统的插件,我不允许修改代码。这意味着我必须修改响应以更改UI的某些部分。 – 2017-05-01 13:15:04