ASP.NET Webforms 中的部分 SSL 无需更改 IIS 配置

2024-02-15

我们有一个非常简单的 ASP.NET Web 应用程序,主要包含静态内容和我们希望使用 SSL 保护的单一表单。安全页面位于其自己的文件夹中,但它继承自不安全的母版页,并且与网站的其余部分共享一些其他资源(徽标、CSS 文件和一些图片)。该站点由第三方托管,并且无法更改 IIS 配置(或更改为不同的主机)。

据我们了解,在 ASP.NET 上处理部分 SSL 时存在一些挑战:

  1. 防止出现“此页面包含安全和不安全项目”消息。
  2. 提供对相对 URL 的支持,因为它们在重定向到安全页面时默认不起作用。

由于潜在的性能问题,我们不想保护整个站点,因此仅保护一个特定页面或文件夹的最佳方法是什么,同时保证该页面加载的任何资源也将受到保护?


我最终使用所描述的解决方案覆盖了我想要保护的页面上的 OnInit 方法here https://stackoverflow.com/questions/377968/how-do-you-forward-http-request-to-a-https-url/378039#378039:

protected override void OnInit(EventArgs e)
{
    if (!Request.IsSecureConnection && !Request.IsLocal)
    {
        UriBuilder builder = new UriBuilder(Request.Url)
        {
            Scheme = Uri.UriSchemeHttps,
            Port = 443
        };
        Response.Redirect(builder.Uri.ToString());
    }
    base.OnInit(e);
}

对于其余页面,我从基页面继承,并在 OnInit 方法上使用以下代码:

protected override void OnInit(EventArgs e)
{
    if (Request.IsSecureConnection)
    {
        UriBuilder builder = new UriBuilder(Request.Url)
        {
            Scheme = Uri.UriSchemeHttp,
            Port = 80
        };
        Response.Redirect(builder.Uri.ToString());
    }
    base.OnInit(e);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET Webforms 中的部分 SSL 无需更改 IIS 配置 的相关文章

  • 如何从另一个UserControl继承一个UserControl?

    是否可以从另一个用户控件继承用户控件 我想要实现的是从另一个用户控件继承的用户控件 所以我有baseusercontrol ascx 它只有文本 Stuff 然后我有另一个用户控件 childusercontrol ascx 继承了base
  • 在 Visual Studio 2019 中安装 OData v4 客户端代码生成器

    我制作了一个 OData 服务 我想制作一个客户端程序来调用该服务 我想使用 OData v4 客户端代码生成器 但无法在 Visual Studio 2019 中安装它 只能在 vs2017 中安装 在vs2019中如何安装 由于 Rah
  • 应用程序网关中的 SSL 证书到期日期

    我们有一个带有 SSL 证书的 Azure 应用程序网关 我们知道我们的证书即将过期 我们需要更新它 我们的问题是 我们无法获取网关信息中的实际到期日期 至少无法从门户获取 有人知道我们可以在哪里检索此信息吗 可能没有直接从 Azure 门
  • 如何将整个 POST 数据转储到 ASP.NET 中的文件中

    我目前正在尝试将一个应用程序从 asp net 移植到 php 但是我遇到了困难 需要有人帮忙 我需要将通过 POST 收到的 aspx 中的所有数据转储到文件中 但我不知道如何执行此操作 有任何想法吗 您可以使用Request 对象的In
  • 从 ApiController 中的 json 序列化中排除属性

    我试图在 Web ApiControllers 中排除属性被序列化为 JSON 我已经验证了以下 2 个场景的工作原理 我已在我希望排除的属性中包含以下属性 System Web Script Serialization ScriptIgn
  • IIS Express 捕获所有子域 url

    我正在寻找 IIS Express 中子域包罗万象 url 的解决方案 基本上 我环顾四周并找到了如何在 IIS Express 中创建域 子域 它很容易找到 我所要做的就是在 IIS Express 的 ApplicationHost c
  • Razor C# - 从数据库获取数据

    我正在使用 WebMatrix 我创建了一个数据库并放置了一个包含几行数据的表 我可以连接到它并获取数据WebGrid 但它只提供了一种使用表格输出数据的方法 这是我的 shows cshtml 代码 var db Database Ope
  • 如何使用 jQuery 过滤 DropDownList 中的选项

    我有 2 个 DropDownList 第一个 DropDownList 有 4 个选项 第二个 DropDownList 有 20 个选项 我想要一个选项value 1在第一个 DropDownList 中选择我在第二个 DropDown
  • 如果找不到指定的图像文件,显示默认图像的最佳方式?

    我有一个普通的电子商务应用程序 我将 ITEM IMAGE NAME 存储在数据库中 有时经理会拼错图像名称 为了避免 丢失图像 IE 中的红色 X 每次显示产品列表时 我都会检查服务器中是否有与该产品相关的图像 如果该文件不存在 我会将其
  • ReportViewer 正在阻止其他功能,直到报告查看器加载完成

    这是 ReportViewer 控件
  • IIS Express 安装目录在哪里?

    我最近开始了一个 ASP NET 教程 我想测试我用 WebMatrix 制作的页面 然而 有一个错误 Web 服务器配置为不列出该目录的内容 因此 它建议启用目录浏览并转到 IIS Express 安装目录并运行命令 那么它到底位于哪里呢
  • 上下文不是 ASP.NET 用户控件的成员

    我刚刚在 ASP NET Web 应用程序项目中创建了新的用户控件 创建后 源代码如下所示 但是一旦我向其中添加一些额外的代码 第一行就会立即出现错误 上下文不是 CS SSR RAIO SSR Project 的成员 我确实有其他用户控件
  • 无法在 Web 服务器上启动调试。远程服务器返回错误:(404) 未找到。在 Visual Studio 中启动调试时出错

    我已经将项目设置为在 IIS 上运行一段时间了 当我按 F5 时 它确实连接没有问题 但最近它停止工作 当我按 F5 press 时确实收到此错误Debug gt Start debugging 无法在 Web 服务器上启动调试 远程服务器
  • 将所有 Web API 请求路由到一种控制器方法

    是否可以自定义 ASP NET Web API 路由机制 将所有对 API 的请求路由到一个控制器方法 如果请求到达 www mysite com api products or www mysite com api otherResour
  • 使用 jQuery 的 ASP.NET 中的模态表单

    我对 ASP NET 开发还比较陌生 到目前为止 我已经设法让事情变得简单 但我现在的需求有点复杂 到目前为止还没有得到太多乐趣 本质上我希望在单击按钮添加新用户时弹出一个模式表单 所以我发现这个在 jQuery 网站上 http jque
  • 验证总结问题

    我有一个页面 我正在使用验证摘要和必需的字段验证器 当我单击验证按钮时 两个验证摘要中都会显示错误消息 并显示在必填字段验证器中写入的消息 我想在验证摘要和必填字段验证器中显示不同的消息 例如 验证摘要应显示 标有 的字段为必填字段 并且必
  • 如何从 Azure Web 应用程序中删除过多的响应标头信息?

    我有一个部署在 Azure Web 应用上的 MVC 项目 我正在尝试删除过多的标头信息 我尝试删除此信息的原因是因为这是标准的安全实践 参考 http www troyhunt com 2012 02 shhh dont let your
  • 启用 NET 的开始标记需要 SHORTTAG YES

    尝试对我的 aspx 的输出进行 W3C 验证 VB NET 2008 Framework 3 我收到这个警告 警告第 6 行第 76 列 启用 NET 的开始标记需要 SHORTTAG 是的 该序列可以至少以两种不同的方式解释 方式 具体
  • GetClientCertificate 使用什么主题?

    我正在尝试发送请求 ActiveXObject WinHttp WinHttpRequest 5 1 但是 这需要客户端证书才能执行此操作 我们已提供该证书 在 PHP cURL 中进行测试后 我可以这样做 curl setopt SOAP
  • 动态向表添加行

    目前 我正在尝试创建一个表 其内容应该由子类创建 查询 RESTful Web 服务的结果 我已经为此工作了相当长一段时间 但我似乎无法让它发挥作用 我尝试了很多不同的解决方案 在子类中创建表并将其添加到 Page Controls 中 这

随机推荐